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

Garbled special characters with SQL rendering of XML data

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

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

我检查了一下,似乎一切正常...
数据库字段:UTF-8 √
HTML headers: UTF-8 √
connector.php: UTF-8 √(通过network选项卡,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 ...

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