Charconversionexception при преобразовании файла xml

У меня есть программа 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>. 

Ответ кроется в самой трассировке. Имя превышает 4 байта, что недопустимо.

Arahasya 26.10.2018 09:00

Тогда где мне нужно проверить? Какие изменения мне нужно сделать для файла xml?

chk.buddi 26.10.2018 09:02

Кажется, что ваш xml-файл не в кодировке UTF-8, а в Windows-1252. В Windows-1252 символ кодируется как 0x93, а 0x93 не является началом допустимой многобайтовой последовательности UTF-8.

Thomas Kläger 26.10.2018 09:04

поделитесь своим xml-кодом

Arahasya 26.10.2018 09:04

Ни один исходный файл не основан на UTF-8

chk.buddi 26.10.2018 09:06

Извините, из соображений безопасности клиента я не могу показать вам xml. Это просто формат вызываемых файлов

chk.buddi 26.10.2018 09:19

отредактируйте свой вопрос, поместите в него xml и обновите его

Arahasya 26.10.2018 09:20

Символ будет закодирован в UTF-8 как 0xE2 0x80 0x9C. Если он закодирован как 0x93, это не UTF-8.

Thomas Kläger 26.10.2018 10:15
0
8
112
1

Ответы 1

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

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

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

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

Другие вопросы по теме