Я пытаюсь проанализировать XML файл, но столкнулся с сообщением об ошибке "недопустимый байт 2 из 2-байтовой последовательности UTF-8. Кто-нибудь знает, что вызвало эту проблему? Спасибо.
Недействительный байт 2 из 2-байтовой последовательности UTF-8
Ответ 1
Чаще всего это связано с кормлением ISO-8859-x
(латинский-х, как латинский-1), но парсер думает, что он получает UTF-8
. Определенные последовательности символов Latin-1 (два последовательных символа с акцентами или умлауты) образуют что-то, что недействительно как UTF-8
, и особенно такое, что на основе первого байта второй байт имеет неожиданные старшие разряды.
Это может легко произойти, когда какой-то процесс выгружает XML
с использованием латинского-1, но либо забывает выводить объявление XML
(в этом случае парсер XML
должен по умолчанию использовать UTF-8
, в соответствии с спецификациями XML
) или утверждает, что он UTF-8
, даже если это не так.
Ответ 2
Либо синтаксический анализатор настроен для UTF-8, даже если файл закодирован иначе, либо файл объявлен как использование UTF-8, но это действительно не так.
Ответ 3
Вы можете попытаться изменить кодировку символов по умолчанию, используемую String.getBytes(), в utf-8. Используйте опцию VM -Dfile.encoding = utf-8.
Ответ 4
У меня была та же проблема. Моя проблема заключалась в том, что я создал новый XML файл с jdom и FileWriter (xmlFile). FileWriter не смог создать файл UTF-8. Вместо этого решила FileOutputStream (xmlFile).
Ответ 5
Для тех, кто до сих пор получает такую ошибку.
так как используется UTF-8, проверьте свой XML-документ для любых латинских букв или так: У меня была та же проблема, и причина в том, что у меня было это:
<n:name>Åke Jógvan Øyvind</n:name>
Надеюсь, что это поможет
Ответ 6
У меня тоже была проблема при попытке импортировать мой XML файл в инструмент java. И я нашел хорошее решение для этого: 1. Откройте файл .xml с помощью Notepad ++, затем сохраните файл .xml в виде файла .rtf. Затем откройте этот файл в приложении WordPad. 2. Сохраните файл .rtf как .txt файл, затем откройте его с помощью Блокнота и сохраните его как .xml файл снова. При сохранении в "Блокноте", рядом с окном всплывающего окна, выберите вариант "Кодирование: UTF-8". Он работал на мою, надеюсь, что это тоже полезно для вас.