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/07/17 15:52
  • — karlov