Xml-кодирование для многонационального решения - PullRequest
0 голосов
/ 08 февраля 2012

Мы анализируем xml-файл, который содержит информацию о пользователе, такую ​​как имя, возраст и т. Д. Но пользователи со всего мира, и нам нужен другой набор символов в xml.Например, есть пользователь с именем «Sikl ¢ si».Если я устанавливаю кодировку xml UTF-8, объект c # xmldocument выдает исключение при загрузке xml.Я изменил кодировку на iso-8859-9, теперь она работает.Но если у нас есть еще один забавный символ, который не покрывается iso-8859-9, это снова станет проблемой.Каково окончательное решение этой проблемы.

Ответы [ 2 ]

3 голосов
/ 08 февраля 2012

Окончательное решение - узнать, какая кодировка использовалась для кодирования файла.Файл XML должен указывать, какую кодировку он использует в объявлении XML (например, <?xml charset="UTF-8" ?>).Если это не так, то документ должен быть UTF-8 или UTF-16 (и разница между ними может быть обнаружена автоматически).

Ваш анализатор XML должен прозрачно обрабатывать кодировку на основе информации в файле XML.

Если вы получаете документы, которые не будут анализироваться, то, скорее всего, проблема в том, как онисоздаются в первую очередь.Вы должны отклонить их и сказать отправителю исправить кодировку.

(Обратите внимание, что любая кодировка Unicode может обрабатывать практически любой символ, который вам может понадобиться (а также огромное количество, которого вы не делаете).проблема в том, что документ не UTF-8, а не в том, что UTF-8 не может обрабатывать используемые символы).

0 голосов
/ 08 февраля 2012

Сделайте это UTF-32, который покроет большинство из них.Для получения дополнительной информации о UTF посетите это .

...