# Кодировка символов

Модуль XML в PHP поддерживает набор символов » Юникода через разные кодировки символов. Модуль работает с двумя типами кодировок символов: исходная кодировка и целевая кодировка. Внутреннее представление документа в PHP кодируется в кодировке `UTF-8`.

Исходное кодирование выполняется при анализе XML-документа. Исходную кодировку указывают, когда создают XML-анализатор (исходную кодировку нельзя изменить позже, во время работы XML-анализатора). Поддерживаются исходные кодировки `ISO-8859-1`, `US-ASCII` и `UTF-8`. Первые две — однобайтные кодировки, что означает, что каждый символ представлен одним байтом. Кодировка `UTF-8` умеет кодировать символы, которые состоят из переменного числа битов (вплоть до 21), одним, двумя, тремя или четырьмя байтами. По умолчанию как исходную PHP использует кодировку `ISO-8859-1`.

Целевое кодирование выполняется, когда PHP передаёт данные функциям-обработчикам XML. Когда создаётся XML-анализатор, PHP устанавливает целевую кодировку эквивалентной исходной кодировке, но целевую кодировку разрешается изменять в любой момент. Целевая кодировка затронет символьные данные, а также имена тегов и цели инструкций обработки.

XML-анализатор вернёт ошибку, если встретит символы вне диапазона символов исходной кодировки.

Если в разбираемом XML-документе PHP встречает символы, которые невозможно представить в целевой кодировке, PHP «понижает» проблемные символы, то есть заменяет такие символы вопросительным знаком.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open