Настройки кодировки UTF-8 на сайте

В данной статье сведен перечень приемов для правильной работы сайта в кодировке UTF-8.

AddDefaultCharset UTF-8
AddCharset utf-8 .css .js .json .rss .xml
htaccess

Кодировка файлов PHP – «UTF-8 без BOM». Если сохраните с ним, то в файлах, где отправляются заголовки будет ошибка.

Для файлов .htacess кодировка должна быть ANSI, иначе будет ошибка 500.

Также кодировка файлов – UTF-8 и мета-тег в <body>:

<meta http-equiv="content-type" content="text/html; charset=utf-8">
HTML

или

<meta charset="utf-8">
HTML
header('Content-type: text/html; charset=utf-8');
setlocale(LC_ALL, 'ru_RU.UTF-8');
PHP

При обработке строковых данных использовать функции из 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');
PHP

Или в .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"
htaccess
Также во избежании проблем с кодировкой письма отправлять через функцию mb_send_mail().

Кодировка таблиц MySQL в utf8_general_ci, после соединения с БД сделать запрос:

SET NAMES utf8
SQL
17.09.2016, обновлено 26.03.2021
6025
Предыдущая запись Checkbox или radiobutton в меню dropdowns

Комментарии

, чтобы добавить комментарий.

Другие публикации

Проблема PHP DOMDocument – русские буквы заменяются на мнемоники
Иногда PHP DOMDocument глючит с русскими буквами, происходит замена их на непонятные мнемоники.
5017
+5
Установка локали UTF-8 в PHP
В любом PHP приложении нужно настраивать локаль и кодировку вне зависимости от настроек сервера.
7549
+3
Отправка письма с вложением
Отправка e-mail в кодировке UTF-8 с вложенными файлами и возможные проблемы.
8171
0
Пример парсинга html-страницы на phpQuery
phpQuery – это удобный HTML парсер взявший за основу селекторы, фильтры и методы jQuery, которые позволяют...
41017
+20
Автоматическое сжатие и оптимизация картинок на сайте
Изображения нужно сжимать для ускорения скорости загрузки сайта, но как это сделать? На многих хостингах нет...
18356
+7
Работа с JSON в PHP
JSON (JavaScript Object Notation) – текстовый формат обмена данными, основанный на JavaScript, который представляет собой набор пар {ключ: значение}. Значение может быть массивом, числом, строкой и...
73034
+11