Php PDO utf8_在INSERT中对我的文本字符串进行两次编码?
相关代码:Php PDO utf8_在INSERT中对我的文本字符串进行两次编码?,php,unicode,pdo,Php,Unicode,Pdo,相关代码: $status = $db->run( "INSERT INTO user_wall (accountID, fromID, text, datetime) VALUES (:toID, :fromID, :text, '" . time() . "')", array(":toID" => $toID, ":fromID" => %accountID, ":text" => $text) ); 我从javascript中获取输入文本,将其放
$status = $db->run(
"INSERT INTO user_wall (accountID, fromID, text, datetime) VALUES (:toID, :fromID, :text, '" . time() . "')",
array(":toID" => $toID, ":fromID" => %accountID, ":text" => $text)
);
我从javascript中获取输入文本,将其放入AJAX调用中进行处理,该调用调用一个包含这些代码行的函数
所讨论的文本字符串是:“Türkçe Türkçe Türkçe!
”
在调查数据库时,保存以下值“TÃ402;¼rkçe Türkçe Türkçe!”
”,该值为双utf8ƒ编码
通过从数据库中选择文本来查看文本时,我会得到“Türkçe Türkçe Türkçe!
”,这是它们应该首先保存在数据库中的方式
据我所知,我没有对数据进行编码,因为它是由PDO准备的。编码是一个b*tch。您需要确保它在几个地方都与您期望的一样:
设置名称“utf8”
utf8\u general\u ci
(ci代表不区分大小写)为了更好地衡量,请确保您的源代码文件也是utf-8。Windows通常默认为iso。适当注明。如果gedit用unicode保存,我会做4中的2,3,实际上可能是这样。我一直不确定utf8\u general\u ci与utf8\u bin或其他一些变体是什么…
utf8\u bin
使数据显式二进制。我不知道PERC,但它可能会让你不能再做文本搜索或类似的事情。我从不使用任何二进制排序规则。也许其他人可以给你一些启发。我自己最近才发现:utf8_general_bin使搜索对重音标记敏感(soé不同于e),但utf8_general_ci使搜索不敏感。我明白了。我确实知道关于ut8的事;这使您的字段区分大小写。