【发布时间】:2012-05-02 10:14:36
【问题描述】:
好的,我希望有人能提供帮助,因为我还没有找到解决方案。
在数据库中,客户设法从不同的字符集中导入或添加字符数据,例如:
<E2><80><99>
我相信这是 UTF-16。
我的脚本的 XML 输出由于此数据而引发错误(它从数据库中提取字符串,例如“描述”字段并构建 XML 文件)。
XML 解析错误:格式不正确 第 20 行,第 50 列。
还有其他一些更长的十六进制,例如 (只是一个例子,我不确定这是否是一个实际字符)。
如何使我的 XML 文件有效,并缩小字符集或使其使用 UTF-32,如下所示:
AddType "application/xml; charset=UTF-32" xml (in .htaccess file along with filesmatch .xml)
<?xml version='1.0' encoding='UTF-32' ?> (placed in head of xml file)
【问题讨论】:
-
0xe2 0x80 0x99是“右单引号”(U+2019)的 UTF-8,我认为您的问题出在其他地方。你能告诉我们xml的前几行吗? -
您在哪里看到这些错误?您有示例网址吗?什么是第 20 行?第 50 列是什么?
-
这里是一个例子:XML Parsing Error: not well-formed Location: x.x.x.x/xml/hal-default.xml Line Number 20, Column 50:
Hangmans Creek Ranch is a 190 (特殊字符就在后面“190”)英亩牧场通过十六进制编辑器查看:0001140 3931 b130 6120 7263 2065 6172 636e 2068 1 9 0 1 sp a c r e sp r a n c h sp 这说明了什么吗? -
哪个程序给你这个错误?是PHP吗?如果有,相关的PHP代码是什么?
-
在浏览器(在我的例子中是 FireFox 10)中查看 .xml 文件时会发生此错误,但其他浏览器也会发生此错误。
标签: php xml character-encoding iconv