相关代码:$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编码。当通过从数据库中选择文本来查看文本时,我会得到“Türkçe Türkçe Türkçe!”,这是它们应该首先保存在数据库中的方式。据我所知,我不是编码的数据,因为它是由PDO准备… 最佳答案 编码是B*TCH。你需要确保它是你所期望的在几个地方:使用javascript的html页面。将其设置为utf-8,并使用如下元标记:与数据库的连接。在连接到数据库之后(在任何其他查询之前)执行查询<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />。你的数据库字段。在mysql中,它被称为排序规则,设置为set names 'utf8'(ci表示不区分大小写)。如果你有这3个,你的数据应该一直是,并且保持,utf-8(除非你自己编码)。为了获得良好的度量,请确保源代码文件也是utf-8。windows通常默认为iso。关于php - 在INSERT中PDO utf8_encoding我的文本字符串两次?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6417035/ 10-11 06:39