无法使用jdom解析器解析包含utf8 0xc2 0x85字符的字符串

时间:2013-05-09 12:43:48

标签: jdom

我有一个包含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字符串中的所有其他元素似乎都很好。

2 个答案:

答案 0 :(得分:0)

JDOM(实际上是SAX解析器)解析该字符没有任何问题。你获得的例外总是由xml prolog之前的非法字符引起:

<?xml version="1.0" encoding="UTF-8"?>

可能之前你有“隐形”字符,但它们仍在那里。

答案 1 :(得分:0)

Whitespace在XML中具有非常特殊的含义。在XML的根元素之外,允许的唯一字符是(#x20 | #x9 | #xD | #xA)+(空格,回车符,换行符和制表符)。

允许XML中的prolog区域包含limited structures和空格。

您所显示的字符不允许在根元素之外的有效XML中显示。遗憾。