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

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

我检查了一下,似乎一切都很好...
数据库字段:UTF-8√
HTML标头:UTF-8√
connector.php:UTF-8√(通过“网络”标签检查,devtools)
还有其他我应该检查的地方吗?

在查看提供数据库值的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>...


因此,问题可能出在从服务器接收数据之前。有人知道我应该在哪里寻找问题吗?

最佳答案

您是否期望ーダーーダー? (Mojibake)

其他时间,您会收到问号吗?

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

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

要进一步诊断,请执行

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


这样我们就可以查看文本在插入时是否被弄乱了。

10-01 00:43
查看更多