当我处理 XML 文件时,Stax 解析器遇到以下行:
<node id="281224530" lat="48.8975614" lon="8.7055191" version="8" timestamp="2015-06-07T22:47:39Z" changeset="31801740" uid="272351" user="Krte�?ek">
正如您所看到的,该行末尾有一个奇怪的字符,当解析器到达该行时,程序停止并给出以下错误:
Exception in thread "main" javax.xml.stream.XMLStreamException: ParseError
at [row,col]:[338019,145]
Message: Ungültiges Byte 2 von 2-Byte-UTF-8-Sequenz.
at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(Unknown
Source)
at com.example.Main.main(Main.java:46)
我应该在 Eclipse 设置中更改任何内容以避免该错误吗?
更新
代码:
XMLInputFactory factory = XMLInputFactory.newInstance();
XMLStreamReader parser = null;
try {
parser = factory.createXMLStreamReader(in);
} catch (XMLStreamException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.d(TAG, "newParser",
"e/createXMLStreamReader: " + e.getMessage());
}
最佳答案
这与eclipse
无关,而是与文件的编码有关。有两种情况:
1) 文件已损坏,即它包含不正确的符号,而不是来自定义的编码
2) 文件不是采用 utf-8
编码,而是在 xml
header 中定义。因此,您应该检查是否正确读取文件内容。
关于java - 如何避免解析奇怪的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34872522/