【问题标题】:Odd characters returned from XML feed从 XML 提要返回的奇数字符
【发布时间】:2015-10-03 12:04:35
【问题描述】:

我正在订阅 XML 提要以在网页中填充一些数据。字符集在数据库中均为 UTF8,在实际页面的元标记中设置为 UTF8。

但是,当我发布提要数据时,它会出现奇怪的字符,例如:

’ 而不是'

我意识到提要可能对文本使用了非 UTF8 编码。但是,我不知道如何确定——而且我查看的下一个提要可能还有不同的编码。

如何确保来自提要的数据在存储到数据库之前被正确编码为 UTF8?

谢谢

【问题讨论】:

标签: php xml unicode character-encoding


【解决方案1】:

如何确保来自提要的数据在存储到数据库之前被正确编码为 UTF8?

将其写入文件并在网络浏览器中查看,或者直接在网络浏览器中查看提要地址。如果您在 Web 浏览器中看到 ’,则该提要只是错误编码。

UTF-8 中的字符(U+2019 右单引号)是字节序列 0xE2、0x80、0x99,如果被误解为 Windows 代码页 1252,则会出现 ’。原则上,为了扭转损害,您可以尝试将提取的文本编码为 cp1252 并将其重新解释为 UTF-8:

iconv('utf-8', 'windows-1252', $dodgy_str)

这适用于,但如果 UTF-8 编码中有无法编码为 cp1252 的字节,则这些序列的原始内容将无法恢复。更好的方法是联系提供有问题的 Feed 的人,让他们修复它。

另一方面,如果浏览器显示正常,则问题出在您对 XML 的解析或与数据库的连接中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 2019-11-14
    • 2023-03-31
    • 1970-01-01
    • 2019-07-05
    • 2017-07-04
    • 2018-03-11
    相关资源
    最近更新 更多