相关代码:
$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ürkçe Türkçe Türkçe!
”,这是双utf8_encode'd。
通过从数据库中选择文本来查看文本时,我得到“Türkçe Türkçe Türkçe!
”,这就是他们首先应该保存在数据库中的方式。
据我所知,我不是在编写PDO准备的数据......
答案 0 :(得分:4)
编码是b * tch。你需要确保它在你想要的地方有几个地方:
带有Javascript的HTML页面。使用元标记将其设置为utf-8,如:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
与数据库的连接。在连接到数据库之后(以及在任何其他查询之前)执行查询set names 'utf8'
。
您的数据库字段。在MySQL中,它被称为 collation ,将其设置为utf8_general_ci
(ci代表不区分大小写)。
如果您有这3个数据,那么您的数据应该始终是,并且保持utf-8(除非您自己编码)。
为了更好地衡量,请确保您的源代码文件也是utf-8。 Windows通常默认为iso。