将值插入数据库时出现 mysql 错误:
General error: 1366 Incorrect string value: '\xE4ngen....' for ....
我正在使用带有 PDO 的 zend Framework 1.10,并且我尝试插入的数据是从 UTF8 格式的 XML 文件中解析出来的。 Mysql 是 5.6.14。
我还检查了我的 mysql 数据库、表和列排序规则,它们是:
- 数据库:latin1_general_ci
- 表:utf8_unicode_ci
- 列:utf8_unicode_ci
由于我的输入来自 XML 文件,我运行 iconv 来检查该文件是否有效 utf8: iconv -f UTF-8 file -o/dev/null 一切看起来都很好,但我不能真正信任这个 XML,因为它来 self 无法控制的外部来源。
我真正想要的是一种安全的方法来处理这个问题,以便将数据导入MySQL,以防万一一切都是UTF8 OK并且万一它有一些编码问题......我怎样才能制作“防弹”如何在 PHP 中读取这些数据并插入到 mysql 中?
最佳答案
如果您不能相信输入是任何特定的字符编码,那么您几乎被迫将其视为任意二进制数据。将列转换为 BLOB
、VARBINARY
或 BINARY
数据类型。
关于php - 避免mysql一般错误: 1366 Incorrect string value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25798081/