使用SQL数据呈现XML数据时出现乱码的特殊字符

时间:2015-11-07 02:33:55

标签: mysql unicode utf-8 special-characters dhtmlx

我在页面上有一个DHTMLX网格,它通过php连接器文件将数据保存到数据库。来自网格的数据通过在PHP连接器文件中呈现的xml编码显示。

网格中的日语单词以日语显示但保存为:ーッƒ 然而,他们确实留在日本的网格! (不知何故...) 如果我在php myadmin上保存数据库中的某些内容,它会在网格中显示为:???

我检查过,一切似乎都正确......
DB字段:UTF-8√
HTML标题:UTF-8√
connector.php:UTF-8√(通过网络选项卡检查,devtools)
我还有其他地方可以检查吗?

当查看给我DB值的PHP文件时,我得到的XML数据已经乱码了:

 <rows><row id='00000000001'><cell><![CDATA[]]></cell><cell><![CDATA[??]]></cell><cell><![CDATA[33]]></cell><cell><![CDATA[]]></cell><cell><![CDATA[]]></cell><cell><![CDATA[?????????]]></cell>...

所以问题可能出在从服务器收到数据之前。有谁知道我应该在哪里寻找这个问题?

1 个答案:

答案 0 :(得分:1)

您对ーダー期待ーダー吗? (变为乱码。)

其他时候,你有问号吗?

这两种症状来自不同的原因。但两者通常都不涉及将客户端字节声明为utf8。在php中,可以使用mysqli_set_charset('utf8')

完成

问号通常还涉及未将列声明为utf8。

要进一步诊断,请执行

SELECT col, HEX(col) FROM tbl WHERE ...

所以我们可以看到文本在插入时是否被破坏了。