【发布时间】:2013-05-10 05:20:24
【问题描述】:
我有一个包含 0xc2 0x85 个字符的 utf-8 字符串。 Eclipse 将其视为空白。某些应用程序将其视为“...”。
由于字符串是 xml,我使用的是 jdom 解析器,但 jdom 解析器失败并给出以下异常。
org.jdom.input.JDOMParseException:第 1 行错误:prolog 中不允许内容。 在 org.jdom.input.SAXBuilder.build(SAXBuilder.java:381) 在 org.jdom.input.SAXBuilder.build(SAXBuilder.java:764)
知道为什么 jdom 解析器不将其视为空格吗?我还能做些什么来让解析器成功验证 xml? xml 字符串中的所有其他元素似乎都很好。
【问题讨论】:
-
0xc2 0x85 是 Unicode 字符 U+0085(下一行)的 utf-8。 fileformat.info/info/unicode/char/85/index.htm
-
U+85 在 XML 中有效,是“下一行”(NEL) 控制代码,用作空格。但是,它很少使用并且在其他格式中无效,例如 HTML。包含它是为了与旧的 IBM 格式兼容。我不建议使用它。它也很容易与省略号的 CP-1252 字符混淆,其原始值为 0x85,但在 Unicode 中应表示为 U+2026。某些软件(例如浏览器)可能会遇到它,假设它的 CP-1252 编码不正确并且(错误地)显示省略号。
标签: jdom