Установка локали UTF-8 в PHP

В любом PHP приложении нужно настраивать локаль и кодировку вне зависимости от настроек сервера. Это предотвратит неверное отображение и работу сайта при переезде на другой хостинг и других ситуаций.

Основная функция, в случаи успеха возвращает устанавливаемое значение или FALSE. Влияет на строковые функции, даты и т.д.
setlocale(LC_ALL, 'ru_RU.utf8');
PHP

Возможен вариант:

setlocale(LC_ALL, 'ru_RU');
PHP

Вместо LC_ALL можно указать отдельную категорию функций, на которые будет влиять локаль:

  • LC_COLLATE – функции сравнения строк,
  • LC_CTYPE – функции преобразования и классификации строк,
  • C_MONETARYL – для функции localeconv(),
  • LC_NUMERIC – задает символ десятичного разделения,
  • LC_TIME – форматирование даты/времени,
  • LC_MESSAGES – для системных сообщений.

Настройка функций для работы с многобайтовыми строками.

mb_internal_encoding('UTF-8');
mb_regex_encoding('UTF-8');
mb_http_output('UTF-8');
mb_language('uni');
PHP

От него зависит результат работы функций с датами, подробнее о настройке временной зоны.

date_default_timezone_set('Europe/Moscow');
PHP

Ещё можно явно указать в какой кодировке передается контент, отправив заголовок:

header('Content-type: text/html; charset=utf-8');
PHP
// Локаль.
setlocale(LC_ALL, 'ru_RU.utf8');
mb_internal_encoding('UTF-8');
mb_regex_encoding('UTF-8');
mb_http_output('UTF-8');
mb_language('uni');
header('Content-type: text/html; charset=utf-8');
date_default_timezone_set('Europe/Moscow');
PHP
18.10.2019
6002

Комментарии

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

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

Настройки кодировки UTF-8 на сайте
В данной статье сведен перечень приемов для правильной работы сайта в кодировке UTF-8.
4556
+1
Перекодировка текста UTF-8 и WINDOWS-1251
Проблема кодировок часто возникает при написании парсеров, чтении данных из xml и csv файлов. Ниже представлены способы...
21171
+2
Автоматическая установка временной зоны у пользователя
date_default_timezone_set устанавливает часовой пояс, который по умолчанию используется всеми дата/время функциями.
2974
+3
date() – форматирование даты PHP
date($format, $timestamp) – форматирует дату/время по шаблону, где...
23368
0
Вывод даты с русскими месяцами
PHP-функция для вывода даты в привычном формате из метки unix timestamp.
3105
+3
Пример парсинга html-страницы на phpQuery
phpQuery – это удобный HTML парсер взявший за основу селекторы, фильтры и методы jQuery, которые позволяют...
32283
+13