Image

База знаний → Принудительное указание кодировки в php при подключении к базе данных MariaDB

[Скрипты]
Дата публикации: 26.12.2024

По умолчанию на всех хостинг тарифах используется кодировка utf8mb4 для подключения к базам данных. В редких случаях когда сайт был разработан давно - кодировка будет отображаться некорректно.

Вместо нормальных букв будут отображаться т.н. крякозябры, некие символы похожие на машинные иероглифы. Это происходит по причине того, что база данных и все ее таблицы находятся в другой кодировке, отличной от utf8mb4. В то время как все старые сайты разрабатывались на кодировке Windows-1251.

Чтобы исправить некорректное отображение, необходимо принудительно указать кодировку подключения к базе данных в Вашей CMS.

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

ini_set('default_charset', 'Windows-1251');

Данная конфигурация принудительно указывает кодировку подключения.

Итоговый вариант файла настроек должен выглядеть примерно так:

...
$hostname_dbconn = "localhost";
$database_dbconn = "DATABASE-NAME";
$username_dbconn = "DATABASE-USER";
$password_dbconn = "PASSWORD";

ini_set('default_charset', 'Windows-1251');
...

Теперь обновите страницу используя сочетание клавиш Ctrl + F5 (с очисткой кэша в браузере) - отображение кодировки сайта теперь должно работать корректно.

Также чтобы убедиться, на какой кодировке работает сайт, можно нажать в браузере сочетание клафиш Ctrl + u, в открывшейся вкладке в начала html кода найдите строку вида:

<meta http-equiv="content-type" content="text/html; charset=windows-1251" />




Нет комментариев