У нас есть XML-сообщения, которые приходят из внешней системы через мыльные конверты. Если есть заголовок кодировки, тогда мы используем его, в противном случае мы предоставляем его с UTF-8.
Недавно мы получили сообщения с интересными символами, такими как перевернутый знак вопроса: ¿, буквы с акцентом и т. Д.
Наша система, которая обрабатывает эти сообщения, не может разобрать это. Я заметил, что формат этих XML-файлов был iso-8859-1, поэтому я попытался изменить его на UTF-8, чтобы посмотреть, будет ли анализатор играть в мяч, но все же не повезло.
Зная, что UTF-8 поддерживает более широкий диапазон, я проверил таблицу наборов символов для iso-8859-1 здесь: http://en.wikipedia.org/wiki/ISO/IEC_8859-1. Вроде перевернутые знаки вопроса, поддерживаются буквы с акцентом.
Я бью стену с этим и буду очень признателен за помощь! Спасибо!
Код C ++ / stl с использованием xerces-c 2.7.0, компилируемый с помощью компилятора gnu 3.4 на компьютере с Linux x86.
Как отмечалось в комментариях, «специальные» символы не обязательно поддерживаются программой чтения XML. Это не единственная проблема для xerces-c
, но также происходит в нескольких версиях парсеров JavaScript XML. Я решил эту проблему для себя (например, названия рек в Южной Америке, содержащие различные буквы с акцентом, которые кодируются в UTF-8 несколькими символами) с помощью &#nnn; номенклатура, основанная на таблицах здесь: http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent
Других решений пока нет …