Знаки питання замість кирилиці в MySQL: як перевірити кодування
Некоректна кирилиця може виникати через різні кодування з’єднання, таблиці, дампу або HTML-сторінки. Спершу з’ясуйте, чи пошкоджене відображення, чи вже збережені дані.
Зробіть копію та перевірте дані
Експортуйте базу перед будь-якою конвертацією. Порівняйте текст у phpMyAdmin і на сайті. Якщо в самій базі замість літер уже збережені звичайні знаки питання, зміна кодування їх не відновить: потрібна коректна копія або початкове джерело.
Установіть кодування з’єднання
Для нового PHP-коду й сучасної CMS зазвичай використовують UTF-8 із utf8mb4. Приклад PDO та варіант mysqli:
<?php
$pdo = new PDO(
'mysql:host=localhost;dbname=account_site;charset=utf8mb4',
'account_siteuser',
'REPLACE_WITH_DATABASE_PASSWORD'
);
// Alternative after creating a mysqli connection:
// $mysqli->set_charset('utf8mb4');
Старі функції mysql_query() вилучені із сучасних PHP. Не додавайте старий приклад із примусовим cp1251 без перевірки реального кодування застосунку.
Перевірте весь шлях тексту
Узгодьте кодування файлів, HTTP/HTML, з’єднання та колонок. Зміна collation або масова конвертація робочої бази потребує тесту на копії: подвійне перекодування може пошкодити текст. Для готової CMS змінюйте її штатні параметри, а не випадкові запити у сторонньому файлі.
Від інструкції — до налаштування
Умови та можливості відповідної послуги — на основному сайті UAhosting.
Переглянути послугу