2015-11-07 51 views
0

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

网格中的日语单词以日语显示,但保存为: 然而,他们确实留在网格中的日语! (不知何故...) 如果我保存在php myadmin的数据库中的东西,它显示在网格中:???

我检查了,一切似乎是正确的......
数据库字段:UTF-8√
HTML头:UTF-8√
connector.php:UTF-8√(通过网络选项卡检查,devtools)
我应该检查其他地方吗?

当在PHP文件给我的DB值看,我收到已乱码XML数据:

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

所以也许从服务器接收的数据之前的问题所在。有谁知道我应该在哪里寻找问题?

回答

0

您期待ーダーーダー? (Mojibake)

其他时候,你会得到问号吗?

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

问号通常还包括未能将列声明为utf8。

进一步诊断,请你

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

,所以我们可以看到,因为它是插入的文本是否错位。