2016-01-19 2 views
1

В то время как я обработка 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()); 
     } 

ответ

0

Чтение XML с использованием формата UTF8.

File file = new File("c:\\your-file.xml"); 
InputStream inputStream= new FileInputStream(file); 
Reader reader = new InputStreamReader(inputStream,StandardCharsets.UTF_8); 

посмотреть кодировку файла с комментарием: от reateXMLEventReader(InputStream stream, String encoding)

parser = factory.createXMLStreamReader(in, StandardCharsets.UTF_8); //if its utf-8 
+0

Похоже, он уже читает файл в кодировке 'utf-8', но появляется символ, который отсутствует в этой кодировке. – Andremoniy

+0

Я использую StAX lib. и для чтения xml-файла я использую эту строку: parser = factory.createXMLStreamReader (in); и я не могу использовать StandardCharsets.UTF_8 в качестве второго параметра. Обратите внимание на раздел обновления – user2121

+0

См. кодировку вашего xml-файла http://superuser.com/questions/638456/how-to-automatically-detect- text-file-charset-and-convert-it-to-utf-8 –

1

Речь идет не о eclipse, но речь идет о кодировании файла. Есть два случая:

1) файл поврежден, то он содержит неверные символы, а не от определенной кодировки

2 файла) не в utf-8 кодировании и определяются в xml заголовке. Поэтому вы должны проверить, что вы правильно читаете содержимое файла.

0

Если вы отредактировали и сохранили файл XML в eclipse, это может быть проблемой, если ваш eclipse не настроен для использования UTF-8. Проверьте этот вопрос: How to support UTF-8 encoding in Eclipse

В противном случае вам, вероятно, ничего не нужно делать с кодом. Вам просто нужен корректный контент UTF-8.

Смежные вопросы