Требования, предъявляемые к кодировкам символов в PHP

Типы кодировок, использование которых в PHP безопасно.

  • Однобайтные кодировки,

    • имеющие ASCII-совместимую (ISO646 совместимую) разметку в диапазоне с 00h по 7fh.

  • Многобайтные кодировки,

    • имеющие ASCII-совместимую разметку в диапазоне с 00h по 7fh.
    • не использующие ISO2022 escape-последовательности.
    • не использующие значения в байтах с 00h по 7fh по отдельности, когда эти байты представляют один символ.

Далее приведены примеры кодировок, использование которых в PHP нежелательно.

JIS, SJIS, ISO-2022-JP, BIG-5

Даже если PHP скрипт написан в рекомендуемой кодировке, он может оказаться неработоспособным. Зачастую так происходит, когда кодированные строки появляются в скрипте в качестве идентификаторов или литералов. Можно исключить большую часть таких ситуаций путем использования функции фильтрации кодировок во входящих HTTP запросах (функция есть в расширении mbstring).

Замечание:

Крайне не рекомендуется использовать SJIS, BIG5, CP936, CP949 и GB18030 в качестве внутренних кодировок, если вы недостаточно разбираетесть в устройстве парсера, сканера и кодировки.

Замечание:

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

Если вы используете PostgreSQL, совпадение кодировок в базе данных и используемой в PHP необязательно, так как PostgreSQL поддерживает автоматическое преобразование кодировок между СУБД и клиентом.


Участник рейтинга Тэглайн 2010