2.6.1.3.1. Неправильне кодування при виведенні даних з бази

Зверніть увагу, що ці налаштування потрібні в разі невідповідності кодування бази даних і сайту. Якщо перед появою проблеми були змінені будь-які файли, то спочатку варто перевірити кодування самих файлів і змінити його на потрібне, якщо це необхідно.

У разі, якщо кодування сайту і бази даних не збігається (частина тексту на сайті виводиться нормально, а частина тексту з бази — у вигляді незрозумілих знаків), необхідно в скрипті, який підключається до бази даних, додати команди, які вкажуть 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()).
Зміст

    (1)