Существует две основные причины, почему это происходит неправильно.
(a) символ во входном документе кодируется с использованием кодировки, отличной от той, которую, по мнению XML-анализатора, он использует.Например, возможно, символ закодирован в iso-8859-1, но синтаксический анализатор XML считает, что он закодирован в utf-8.
(b) символ в результирующем документе правильно закодирован, но программное обеспечение, котороевы используете для отображения результирующего документа не понимает эту кодировку.
Чтобы исследовать это, вам нужно установить двоичный код, который используется внутри для представления этого символа как во входных, так и в выходных документах.Чтобы определить это, используйте такой инструмент, как шестнадцатеричный редактор.
Убедитесь, что у входного файла есть декларация XML, дающая правильную кодировку.Если нет, это может быть источником проблемы.Если он есть, проверьте его правильность.
Затем сделайте то же самое для выходного файла.
Проверьте, какое программное обеспечение вы используете для отображения выходного файла.Посмотрите, если другое программное обеспечение отображает символ по-разному.Возможно, вам придется изменить настройку программного обеспечения дисплея.Если программное обеспечение для отображения представляет собой веб-браузер, вам может потребоваться проверить или изменить то, что говорят заголовки HTTP о кодировке символов документа, отправляемого в браузер.
Наконец, избавьтесь от этого отключения-вывода-экранированияприписывать.Это только добавляет дополнительные сложности и возможные источники ошибок.