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 或数据库连接的解析中。
我正在订阅 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 或数据库连接的解析中。