PHP PDO 数据库错误特殊字符

标签 php mysql utf-8 pdo special-characters

我已经阅读了有关这种情况的大部分问题和答案,但我无法解决我的性格问题。我的数据库的默认字符集是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 
}

如果您能帮忙,我会很高兴

问候

最佳答案

对于那些有同样错误的人,即使你确信@zerkms提到的事情:

“您需要具有相同的编码:1)页面/表单2)表和列(如果有)字符集(不是排序规则)3)数据库连接。就是这样。如果您的所有3个都相同utf-8 - 那么它应该可以工作。如果没有 - 你丢失了一些东西,需要重新检查它们中的每一个“

如果您仍然遇到像我一样的问题,请检查您的表单处理数据,看看是否有您忘记的过滤器。我有一个安全过滤器,它正在清理输入,并且仅用于 ansi 编码,所以检查所有内容,然后就可以了。

感谢所有回复的人。

关于PHP PDO 数据库错误特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12242493/

相关文章:

r - 如何在R中使用gsub删除奇怪的字符?

PHP 7 和 MongoDB 驱动程序

PHP 允许的内存大小 内存大小耗尽

php - 如何使用 Symfony2 创建实体

php - 临时表和foreach

php - Magento - 高级产品导入

python - 如何将编码值存储到数据库中

php - PHP 中的字符串文字是否只能以 ASCII 的兼容超集(例如 UTF-8 或 ISO-8859-1)的编码进行编码?

c# - 事务化时 CommandText 属性未正确初始化错误

php - 试图让 MySQL 结果水平显示