我在页面上有一个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 ...
这样我们就可以查看文本在插入时是否被弄乱了。