【问题标题】:XML Parsing error after using the character "°" with UTF-8 encoding API将字符“°”与 UTF-8 编码 API 一起使用后的 XML 解析错误
【发布时间】:2020-08-21 10:22:05
【问题描述】:

我在解析 xml 文件时遇到问题。 字符序列中有一个“°”,我收到一条通知:“第 1048 行的 XML 解析错误:输入不是正确的 UTF-8,指示编码!”。我对“&”字符有同样的问题,但我通过输入“&”解决了它 这是 XML 文件的一部分:

<OrganisationListItem>
<Branch>
<Partner>
<PartnerShortName>xxxxx</PartnerShortName>
<BranchShortName>xxxxx</BranchShortName>
</Partner>
<BranchNumber>xxxxx</BranchNumber>
<BusinessName>xxxxx</BusinessName>
<StartDate>xxxxxx</StartDate>
<DisplayWeb>xxxxx</DisplayWeb>
<Address>
<Street>xxxxx 1° xxxxx</Street>
<ZipCode>xxxxxx</ZipCode>
<City>xxxxx</City>
<CountryCode>xxxxx</CountryCode>
</Address>
</Branch>
</OrganisationListItem>

第 1048 行是该行:“xxxxx 1° xxxxx”。 “无效的 UTF-8 起始字节 0xb0(在 char #28494,字节 #27999)”

【问题讨论】:

  • (1) 请编辑您的帖子并分享您的 XML。 (2) 你用什么来解析XML?
  • (1) 完成。 (2) 在这种情况下,我手动编辑了文件
  • 我在 Stylus Studio 中检查了您的 XML。您的 XML 是合法的。以下是 Stylus Studio 报告的内容:“正在检查 Untitled1.xml...XML 文档 Untitled1.xml 格式正确。”请指定您在哪里得到“第 1048 行的 XML 解析错误:输入不是正确的 UTF-8,指示编码!”
  • 第 1048 行是该行:“xxxxx 1° xxxxx”。 “无效的 UTF-8 起始字节 0xb0(在 char #28494,字节 #27999)”这就是我得到的更多。我确定它是一个“°”符号,因为如果我删除它,我就不会再得到它了。
  • 再次,请指定您在哪里得到“第 1048 行的 XML 解析错误:输入不是正确的 UTF-8,指示编码!”。您正在使用什么软件(或 API)?

标签: xml utf-8 character-encoding


【解决方案1】:

该文件以声明编码为 UTF-8 的声明开头,因此解析器尝试将其解码为 UTF-8,它会成功解码所有内容,直到找到您显示为“°”的字节,但这显然不是“°”的正确 UTF-8 编码。要查看实际编码是什么,请查看十六进制编辑器中的内容;很有可能是 iso-8859-1 或类似的东西。

要解决此问题,请检查创建文档的过程,以找出为什么标头中声明的编码与字符编码的实际方式不匹配。最初创建文档时可能没有出现错误,但后来由于某些转码而发生,例如将文件从一台机器发送到另一台机器时。

如果您手动编辑文件,请尝试使用能够理解 XML 的文本编辑器;这使得这个问题发生的可能性大大降低。

【讨论】:

    猜你喜欢
    • 2012-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 2021-03-22
    相关资源
    最近更新 更多