XML 供稿返回的奇怪字符

Odd characters returned from XML feed

我正在订阅 XML 供稿以在网页中填充一些数据。字符集在两个数据库中都是 UTF8,并且在实际页面的元标记中设置为 UTF8。

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

’ 而不是 '.

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

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

谢谢

How do I ensure that the data coming from the feed is correctly encoded as UTF8 before getting stored in the DB?

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

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

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

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

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