В данной статье сведен перечень приемов для правильной работы сайта в кодировке UTF-8.
AddDefaultCharset UTF-8
AddCharset utf-8 .css .js .json .rss .xml
Кодировка файлов PHP – «UTF-8 без BOM». Если сохраните с ним, то в файлах, где отправляются заголовки будет ошибка.
Для файлов .htacess кодировка должна быть ANSI, иначе будет ошибка 500.
Также кодировка файлов – UTF-8 и мета-тег в <body>:
<meta http-equiv="content-type" content="text/html; charset=utf-8">
или
<meta charset="utf-8">
header('Content-type: text/html; charset=utf-8');
setlocale(LC_ALL, 'ru_RU.UTF-8');
При обработке строковых данных использовать функции из mb_string, стандартные с UTF-8 работают некорректно. Например strlen() возвращает неверное количество символов если в строке есть русские буквы.
Настройки mb_string в index.php:
mb_internal_encoding('UTF-8');
mb_regex_encoding('UTF-8');
mb_http_input('UTF-8');
mb_http_output('UTF-8');
mb_language('uni');
Или в .htaccess:
php_value mbstring.internal_encoding "UTF-8"
php_value mbstring.regex_encoding "UTF-8"
php_value mbstring.http_input "UTF-8"
php_value mbstring.http_output "UTF-8"
php_value mbstring.language "uni"
mb_send_mail().Кодировка таблиц MySQL в utf8_general_ci, после соединения с БД сделать запрос:
SET NAMES utf8





