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()
).