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