Doctrine正在将字符串转换为十六进制值

时间:2016-07-19 15:12:17

标签: utf-8 doctrine-orm utf8mb4

我正在通过脚本将一个数据库转换为另一个数据库。

运行脚本时出现以下错误:

\

抛出异常,表示它尝试将国家/地区设置为“\ xcf \ xbb \ xbf \ x62 \ x61 \ x6e \ x67 \ x6c \ x61 \ x64 \ x65 \ x73 \ x68”。

当我var_dump该值时,它只显示为“孟加拉国”。

我的PHP代码中是否有必要调整的内容?

我已经尝试了this,但是phpmyadmin正在抛出#1064错误,指出查询中存在语法错误。

更新

脚本是Symfony3中的一个命令:

SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xBFbangl...' for column 'country' at row 1  

2 个答案:

答案 0 :(得分:2)

\x62\x61\x6e\x67\x6c\x61\x64\x65\x73\x68Bangladesh;之前的\ xcf \ xbb \ xbf毫无意义。在latin1中,它是Ï»¿。它无法有效转换为utf8。 CFBBϻ(GREEK SMALL LETTER SAN),但后来bf被破坏了utf8。

我建议它来自数据来源。

var_dump可能没有显示任何内容,因为你在显示它的设备。

答案 1 :(得分:1)

好几天尝试之后就做了诀窍:

$ country = iconv(“UTF-8”,“ISO-8859-1 // IGNORE”,$ country);

我不知道为什么它首先出错了。如果有人知道,请分享。