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()).
Зміст