CharConversionException при преобразовании XML-файла - PullRequest
0 голосов
/ 26 октября 2018

У меня есть программа на Java, которая обрабатывает XML-файлы.При преобразовании xml в другой xml-файл на основе определенной схемы (xsd / xsl) выдается следующее сообщение об ошибке.

Эта ошибка выдается только для одного файла xml, который имеет тег xml, подобный этому.

<abc>xxx yyyy “ggggg vvvv” uuuu</abc>

Но после удаления или повторного ввода двух кавычек ошибка не выдается.

Кто-нибудь, пожалуйста, помогите мне решить эту проблему.

java.io.CharConversionException: символ больше4 байта не поддерживаются: байт 0x93 подразумевает длину более 4 байтов в .org.apache.xmlbeans..impl.piccolo.xml.UTF8XMLDecoder.decode (UTF8XMLDecoder.java:162)

<?xml version= “1.0’ encoding =“UTF-8” standalone =“yes “?><xyz xml s=“http://pqr.yy”><Header><abc> aaa “cccc” aaaaa vvv</abc></Header></xyz>. 

1 Ответ

0 голосов
/ 26 октября 2018

Как и другие сообщали в комментариях, это не удалось, поскольку типографские кавычки закодированы в кодировке Windows-1292, а не в UTF-8, поэтому анализатору не удалось их декодировать.

Кодировка, объявленная в объявлении XML, должна соответствовать фактической кодировке, используемой для символов.

Чтобы выяснить, как возникла эта ошибка и предотвратить ее повторение, нам нужно знать, откуда появился этот (подражающий) XML-файл и как он был создан.

Я думаю, что кто-то использовал «умный» редактор; В частности, редакторы Microsoft печально известны тем, что меняют то, что вы печатаете, на то, что, по мнению Microsoft, вы хотели напечатать. Если вы редактируете XML вручную, лучше всего использовать редактор с поддержкой XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...