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