Кодировка XML Encoding
XML-документы могут содержать символы, не входящие в ASCII, например норвежские æ ø å или французские ê è é.
Чтобы избежать ошибок, необходимо указать кодировку XML или сохранить XML-файл в Unicode.
Ошибки кодировки XML
Если вы загружаете XML-документ, можно получить две разные ошибки, указывающие на проблемы с кодировкой:
Обнаружен недопустимый символ в текстовом содержимом.
Если ваш XML содержит символы, не входящие в ASCII, а файл сохранён в однобайтовой кодировке ANSI (или ASCII) без указания кодировки, вы получите ошибку.
。
。
Переключение текущей кодировки на указанную кодировку, которая не поддерживается.
Если ваш XML-файл сохранён как двухбайтовый Unicode (или UTF-16) с указанной однобайтовой кодировкой (WINDOWS-1252, ISO-8859-1, UTF-8), вы получите ошибку.
Если ваш XML-файл сохранён как однобайтовый ANSI (или ASCII) с указанной двухбайтовой кодировкой (UTF-16), вы также получите ошибку.
。
。
Блокнот Windows
Блокнот Windows по умолчанию сохраняет файлы как однобайтовый ANSI (ASCII).
Если выбрать «Сохранить как...», можно указать ANSI, UTF-8, Unicode (UTF-16) или Unicode Big.
Сохраните следующий XML в кодировках ANSI, UTF-8 и Unicode (обратите внимание, что документ не содержит атрибута кодировки).
<note>
<from>Jani</from>
<to>Tove</to>
<message>Норвежский: æøå. Французский: êèé</message>
</note>
Попробуйте перетащить файл в браузер и посмотреть результат. Разные браузеры будут отображать разные результаты.
Эксперименты с разными кодировками:
<?xml version="1.0" encoding="windows-1252"?>
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-16"?>
Пожалуйста, попробуйте:
Заключение
- Всегда используйте атрибут encoding
- Используйте редактор, который поддерживает кодировку
- Убедитесь, что вы знаете, какую кодировку использует ваш редактор
- Используйте ту же кодировку в атрибуте encoding