我已经阅读了有关这种情况的大部分问题和答案,但我无法解决我的性格问题。我的数据库的默认字符集是utf8,所有表的排序规则是utf8_general_ci。我确信所有设置都是 utf8 和 utf8_general_ci,因为我已经检查了它们数十亿次。问题是在表单中发布值后,它似乎不是我想要的数据库内容,而且如果我从 phpmyadmin 编辑数据库,当我获取数据时,它再次不显示我想要的内容。
数据库连接有效,我按照之前提到的有关这种情况的方式对其进行了编辑,但我的脚本在字符规范方面存在错误。
数据库连接代码是:
try {
$db = new PDO("mysql:host={$db_server};dbname={$db_name};charset=utf-8", $db_user, $db_password,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
// exc
}
如果您能提供帮助,我会很高兴
Regards
对于那些有同样错误的人,即使你确信@zerkms提到的事情:
“您需要具有相同的编码:1)页面/表单2)表和列(如果有)字符集(不是排序规则)3)数据库连接。就是这样。如果您拥有所有3个相同的utf-8 - 那么它应该可以工作。如果没有 - 你遗漏了一些东西,需要重新检查每一个“
如果您仍然遇到像我一样的问题,请检查您的表单处理数据,看看是否有您忘记的过滤器。我有一个安全过滤器,它正在清理输入,并且仅用于 ansi 编码,所以检查所有内容,然后就可以了。
感谢所有回复的人。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)