После создания резервной копии базы данных, как сказал Конерак, запустите ее для каждой таблицы:
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8;
(вы можете проверить с помощью SHOW FULL COLUMNS FROM tablename
, действительно ли все (текстовые) столбцы действительно корректны)
И сразу после подключения к MySQL выполните запрос:
SET NAMES utf8;
Теперь, чтобы сообщить своей аудитории, что вы используете utf8: вы можете создать собственный заголовок на каждой странице или всегда включенномоднако, мне проще поместить это в .htaccess
для Apache в корне:
php_value default_charset "UTF-8"
Если у вас есть не-ASCII контент в плоских файлах, а не только в базе данных, вы будетенадо конвертировать их тоже.Ваш любимый редактор может иметь инструмент пакетного преобразования, или вы можете использовать iconv
.