Отмена сортировки с помощью JAXB приводит к: javax.xml.bind.UnmarshalException (недопустимая последовательность байтов) - PullRequest
2 голосов
/ 16 июля 2011

Вот моя проблема: я написал программу, которая демарширует XML-файл, указанный в качестве входных данных, и оказалось, что моя программа прекрасно работает в моей среде разработки НО эта же программа выдаст следующее исключениев среде моего клиента:

javax.xml.bind.UnmarshalException - со связанным исключением: [java.io.UTFDataFormatException: недопустимый байт 2 в 2-байтовой последовательности UTF-8.]

Файл XML, указанный в качестве входных данных для моей программы, использует кодировку UTF-8.Объект Unmarshaller использует тип кодировки по умолчанию, то есть UTF-8, поскольку я не установил для него никакого значения свойства.Кроме того, я не установил схему для демаршаллера, поэтому я даже не запрашиваю проверку XML.

У кого-нибудь есть идеи или кто-то уже сталкивался с такой же проблемой?

Заранее спасибо

1 Ответ

0 голосов
/ 18 июля 2011

Я уже получил эту ошибку. Я изменил свою конфигурацию, чтобы использовать кодировку ISO-8859-1: marshaller.setProperty (Marshaller.JAXB_ENCODING, "ISO-8859-1");

я могу поместить строки UTF-8 в поток xml, это правильно маршалл / демаршалл, даже если кодировка не определена как ISO-8859-1

...