Некоторые неудобства с кодировкой windows-1251 заставляют задуматься о том, как перевести кодировку проекта на другую, к примеру, UTF-8. С файлами — всё проще, открываем в редакторе (к примеру, Notepad++) файлы скриптов, преобразуем их кодировку UTF-8/без BOM, сохраняем. Однако если ваш сайт использует для хранения данных базу (зачастую MySQL), то вам необходимо конвертировать так же кодировку базы данных. Выполнение данной задачи предусматривает разные способы. Здесь мы рассмотрим, пожалуй, самый быстрый и простой способ. Делать мы это будем посредством использования SQL-запроса.
Запрос для конвертации базы:
ALTER TABLE `db_name`.`table_name` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
Данный запрос конвертирует базу в указанную кодировку, доступную для MySQL. Кроме этого потребуется конвертировать кодировку самих таблиц. Можно производить конвертацию таблиц по отдельности каждую, неудобство возникает при большом количестве таблиц. К счастью, мучить себя этим рутинным занятием не придется, т.к. можно это сделать посредством одного запроса.
Запрос для конвертации таблиц базы данных:
SELECT CONCAT( 'ALTER TABLE `', t.`TABLE_SCHEMA` , '`.`', t.`TABLE_NAME` , '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;' ) AS sqlcode FROM `information_schema`.`TABLES` t WHERE 1 AND t.`TABLE_SCHEMA` = 'My_DB_for_convert' ORDER BY 1 LIMIT 0 , 90
Вместо My_DB_for_convert вам необходимо указать имя своей базы данных. Данный запрос будет работать в MySQL начиная с версии 5 и выше. В случае с использованием утилиты phpMyAdmin всё проще простого, остается только скопировать данный запрос и вставить в форму SQL запроса.
Стоит обратить внимание на то, что существуют подкодировки UTF-8, популярные из них:
utf8_general_ci и utf8_unicode_ci
Скорость работы, и порядок сортировки у этих родственных кодировок разная, собственно это их и отличает друг от друга. utf8_general_ci – работает немного быстрее, поэтому предпочтение отдается именно этой кодировке. Разница разумеется мизерна, для того чтобы заметить это в действительности на производительности базы, однако такие сведения есть.
Именно geneTal_ci быстрее канешн ))
опечатка), исправил)
Автору респект ну просто огромнейший, пол дня потратил что бы понять почему база utf-8 а в запросе ?????????? Оказалось база была в latin-1 :) Удачи и всякий благ.
спасибо!)
Так ничего и не вышло. :(
С первой командой удалось изменить кодировку, но пришлось попотеть, вбивать таблицы по отдельности. Вторая команда не сработала. :)
ДЕРЖИТЕСЬ ПОДАЛЬШЕ ОТ UTF-8!!! ср1251 отличный выбор. Работает быстро мало места занимает и быстро сортируется. Для 2-у язычного кода, один из которого русский другой английский идеальный вариант! Лучше сконвертируйте наоборот...
Уважаемый А ! Тогда переходите на KOI8-R это ваще огонь !!!
Ну а если Вы не доросли до UTF-8 тогда не показывайте окружающим свою глубокую некомпетентность.
Нас могут читать дети и они могут Вам поверить, а кто потом их психику лечить будет ?
То-то и оно...