Знаки вопроса вместо кириллицы в 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.
Посмотреть услугу