【问题标题】:Garbled special characters with SQL rendering of XML dataXML 数据的 SQL 呈现出现乱码的特殊字符
【发布时间】:2016-02-08 07:02:47
【问题描述】:

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

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

我检查了一下,一切似乎都正确...
数据库字段:UTF-8 √
HTML 标头:UTF-8 √
connector.php:UTF-8 √(通过网络选项卡,开发工具检查)
还有其他地方我应该检查吗?

查看为我提供 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>...

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

【问题讨论】:

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


    【解决方案1】:

    你期待ーダー 换成ーダー 吗? (Mojibake。)

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

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

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

    要进一步诊断,请做

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

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

    【讨论】:

    • 感谢您的帮助。抱歉,多年后我将其标记为正确。非常感谢您对我的问题的支持! : D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-16
    相关资源
    最近更新 更多