我是在 Windows Server 2008 和 SQL Server 上使用 PHP 的新手。当我想发布(或使用 get 方法)一些变量并将它们存储在数据库中时,它会转换空格 ->%20
和é
->之类的字符,但%C3
我不希望系统存储%20
或%C3
实际性格é
。我怎样才能做到这一点?该页面编码为 utf-8,排序规则为Latin1_General_100_CS_AS
问问题
632 次
2 回答
0
我打算试一试,但是当您执行 get 时,表单数据正在被编码到 URL 中,您会得到这种行为。使用 post 方法不必对空格的表单值进行编码,而是对特殊字符进行编码。这是一个很好的参考,http: //webmonkeyuk.wordpress.com/2011/04/23/how-to-avoid-character-encoding-problems-in-php/ 。
于 2013-06-28T20:29:42.940 回答
0
http://php.net/manual/en/function.urldecode.php
试试urldecode
。
它将采用 url-safe 表示并将它们转换为实际字符。请参阅手册。
注意手册中的警告,您不必对 GET 或 POST 变量执行此操作。它们会自动解码。
$my_var = $_GET['my_weird_character'];
$my_var 应该已经被解码并准备好进入你的数据库。你试过了吗?在担心和问这样的问题之前,为什么不先尝试一下,看看它是否有效?
于 2013-06-28T20:32:32.080 回答