hosting:mysql:issues:wrong-coding

Неверная кодировка при выводе данных из базы

Обратите внимание, что данные настройки требуются в случае несоответствия кодировки базы данных и сайта. Если были изменены какие либо файлы перед появлением проблемы, то стоит первоначально перепроверить кодировку самих файлов и изменить ее на нужную, если требуется.

В случае, если кодировка сайта и базы данных не совпадает (часть текста на сайте выводится нормально, а часть текста из базы — в виде непонятных знаков), необходимо в скрипте, который подключается к базе данных, добавить команды, которые укажут MySQL-серверу кодировку, в которой нужно выводить текст. В зависимости от того, какую библиотеку PHP вы используете, команды будут выглядеть так:

  • Для библиотеки mysql:
    mysql_query("SET NAMES 'utf8' COLLATE 'utf8_general_ci'");
    mysql_query("SET CHARACTER SET 'utf8'");

  • Для библиотеки mysqli:

    mysqli_query($link, "SET NAMES 'utf8' COLLATE 'utf8_general_ci'");
    mysqli_query($link, "SET CHARACTER SET 'utf8'");

В командах:

  • Вместо utf8 необходимо указать нужную кодировку (например, cp1251).
  • Вместо utf8_general_ci — нужное сопоставление кодировок (например, cp1251_general_ci). Полный список кодировок и сопоставлений MySQL доступен в официальной документации.
  • Для библиотеки mysqli первым параметром указывается указатель на подключение к БД — в вашем скрипте он может быть отличным от $link (узнать его можно, посмотрев в исходном коде название переменной, которой присваивается результат выполнения функции mysqli_connect()).
  • hosting/mysql/issues/wrong-coding.txt
  • Последние изменения: 2019/11/20 15:59
  • — zinenko