Вимоги до кодування символів у PHP

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

  • Однобайтове кодування,

    • мають ASCII-сумісну (сумісну з ISO646) розмітку в діапазоні з00hпо7fh
  • Багатобайтове кодування,

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

Далі наведено приклади кодувань, використання яких у PHP небажане.

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

Навіть якщо PHP-скрипт написаний в кодуванні, що рекомендується, він може виявитися непрацездатним. Найчастіше так відбувається, коли кодовані рядки з'являються в скрипті як ідентифікатори або літерали. Можна виключити більшість таких ситуацій шляхом використання функції фільтрації кодувань у вхідних HTTP-запитах (функція є в модулі mbstring

Зауваження :

Вкрай не рекомендується використовувати SJIS, BIG5, CP936, CP949 і GB18030 як внутрішні кодування, якщо ви недостатньо розумієтеся на пристрої парсера, сканера та кодування.

Зауваження :

Якщо ви підключаєтеся до бази даних засобами PHP, рекомендується використовувати однакові кодування для бази даних і як внутрішнього кодування. Це полегшить розробку та підвищить швидкодію.

Якщо ви використовуєте PostgreSQL, збіг кодувань у базі даних і використовуваної в PHP необов'язково, оскільки PostgreSQL підтримує автоматичне перетворення кодувань між СУБД та клієнтом.