среда, 22 июня 2011 г.

PHP и Unicode

Соображения по программированию
Как уже упоминалось, PHP-работу с Unicode можно выполнить несколькими способами, включая расширения PHP, различные кодировки, и т.д. Но пока вы не стали экспертом в данной области, я не рекомендую пробовать принимать решение выбирать из этих многочисленных возможностей. Вы почти определенно достигнете наилучших результатов, если сконцентрируетесь на следующем:
  • Явно используйте кодировку UTF-8, маркированную:
    • "mb_language('uni'); mb_internal_encoding('UTF-8');" в верхней части ваших сценариев.
    • Content-type: text/html; charset=utf-8 в HTTP-заголовке для .htaccess, header() или конфигурации Web-сервера.
    • <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> и <orm accept-charset = "utf-8"> в HTML-коде.
    • CREATE DATABASE ... DEFAULT CHARACTER SET utf8 COLLATE utf8 ... ENGINE ... CHARSET=utf8 COLLATE=utf8_unicode_ci - обычная последовательность для экземпляра MySQL, а для других баз данных имеются похожие выражения.
    • SET NAMES 'utf8' COLLATE 'utf8_unicode_ci' - это полезная директива для PHP, которая передается в MySQL сразу после подключения.
    • В php.ini назначьте default_charset = UTF-8.
  • Заменяйте строковые функции, такие как strlen и strtlower, на mb_strlen и mb_convert_case.
  • Заменяйте mail и colleagues на mb_send_mail и др.; хотя понимающие Unicode сообщения электронной почты являются продвинутой темой, выходящей за рамки данной статьи, использование mb_send_mail является хорошей отправной точкой.
  • Используйте функции многобайтных регулярных выражений (multibyte regular expressions) (см. раздел "Ресурсы").

Комментариев нет:

Отправить комментарий