Mysql: проблема букв "И" и "ш"
После неудачной конвертации из одной кодировки в другую, может случится ситуация, при которой вместо заглавной буквы "И" и строчной "ш" отображаются знаки "�?", при этом остальные символы отображаются правильно. Например "Андру�?ко �?рина".
По-умолчанию phpmyadmin коннектится к БД, используя UTF-8. В полях с кириллицей можно увидеть кракозябры, похожие на "РђРЅРґСЂСѓС?РєРѕ Р?СЂРёРЅР°".
Проверить наличие знаков "�?" в тексте можно с помощью запроса:
SELECT convert(name USING BINARY) FROM `MyTable`;Как исправить?
- создаем таблицу аналогичную по структуре той, которая хранится в неправильной кодировке.
- получаем структуру исходной таблицы:
SHOW CREATE TABLE `MyTable`;
- задаем другое имя, напр. `New_MyTable`; прописываем UTF-8 кодировку;
- в стобцах исходной таблицы содержащих кириллицу делаем замену:
UPDATE `New_MyTable`
SET `my_column` = REPLACE (`my_column`,
CONCAT(CHAR(209), CHAR(63)), CONCAT(CHAR(209), CHAR(136)) );
UPDATE `New_MyTable`
SET `my_column` = REPLACE (`my_column`,
CONCAT(CHAR(208), CHAR(63)), CONCAT(CHAR(208), CHAR(152)) );
- вставляем в таблицу `New_MyTable` данные, перекодируя на ходу нужные столбцы:
INSERT INTO `New_MyTable`(id, my_column, third_column )
SELECT id, convert(my_column using binary), third_column
FROM `MyTable`;
- Таблица `New_MyTable` готова к использованию.
Источник: Античат.ру