【发布时间】:2017-10-08 17:51:01
【问题描述】:
我收到一个 XML 文件,其中包含如下名称:
<Benchↂ0020Codeↂ0020>something</Benchↂ0020Codeↂ0020>
ↂ符号用三个字节表示:0xE2、0x86、0x82。
看起来 ↂ0020 应该被视为空格字符。但是当我使用 System.Xml.XmlReader 读取 XML 时,字符 ↂ0020 不会转换为空格。
有没有办法让它们转换(当然除了替换)?还是我刚刚弄坏了 XML?
【问题讨论】:
-
根据XML specification,字符 U+2182 是允许的,因此 XML 代码看起来是有效的。但它是一个奇怪的 XML 元素名称。检查您的 XML 代码的来源,如果它是以这种方式生成的,或者您后来以某种方式对其进行了更改。
-
如果它们是空格,那么这将是一个无效的标签名称。 XML 不一定被破坏,因为
Benchↂ0020Codeↂ0020是一个有效的标签名称,为什么你认为它们应该是空格? -
看起来 XML 没有损坏,但它使用私有约定来表示名称,以转义不允许的字符。 XML 解析器不会理解这个约定,由接收应用程序来解释它。
-
@MichaelKay 请发表您的评论作为答案,以便我接受。