Требования, предъявляемые к кодировкам символов в 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 поддерживает
автоматическое преобразование кодировок между СУБД и клиентом.