XML не очень хорошо сформирован из-за умлаут символов. - PullRequest
0 голосов
/ 10 ноября 2018

У меня есть xml-файл с объявлением:

<?xml version="1.0" encoding="utf-8"?>

Когда я открываю его с 3 различными редакторами, я получаю следующее:

enter image description here

Очевидно, есть 3 разных представления.Блокнот дает мне правильный символ, Блокнот ++ дает мне шестнадцатеричный и восьмеричный код emacs.

У меня есть код Perl, который проверяет, правильно ли сформирован xml.Как только xml имеет эти символы umlaut, xml-файл сформирован неправильно и не может быть загружен в мою базу данных.Когда я удаляю все символы умлаут (и греческие символы и т. Д.), Xml-файл хорошо сформирован, и я могу импортировать файл в базу данных.

Моя цель - создать xml-файл, который я могу импортировать в базу данных, учитывая символы умлаута (и греческие символы и т. Д.).

В чем причина такого поведения?Это вызвано, когда XML был создан?

1 Ответ

0 голосов
/ 10 ноября 2018

Мне кажется, что символ ä на вашем входе закодирован как xE4, который является представлением символа в iso-8859-1 (и Windows CP-1252), но не является правильным представлением в UTF-8. Ваши три редактора по-разному справляются с несоответствием между объявленной кодировкой в ​​объявлении XML и фактической кодировкой.

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

Возможно, проблема возникла при первом создании файла XML, или он мог быть представлен каким-либо процессом, который впоследствии изменил кодировку символов, не изменяя объявление XML для соответствия новой кодировке. Это может произойти, если файл был перекодирован с помощью процесса, не поддерживающего XML.

...