В то время как я обработка 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, чтобы избежать этой ошибки?
Update
код:
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());
}
Похоже, он уже читает файл в кодировке 'utf-8', но появляется символ, который отсутствует в этой кодировке. – Andremoniy
Я использую StAX lib. и для чтения xml-файла я использую эту строку: parser = factory.createXMLStreamReader (in); и я не могу использовать StandardCharsets.UTF_8 в качестве второго параметра. Обратите внимание на раздел обновления – user2121
См. кодировку вашего xml-файла http://superuser.com/questions/638456/how-to-automatically-detect- text-file-charset-and-convert-it-to-utf-8 –