MySQL: Изменение кодировки таблиц в MySQL
Начиная с версии 4.1 ,СУБД MySQL умеет работать с кодировками. Для многих работа с кодировками в MySQL – это большая проблема. Проблемы, связанные с кодировками неплохо освещены в Википедии на сайте http://phpclub.ru . Тем, кто плавает в вопросах кодировки я рекомендую посетить ресурс и читать статью до полного понимания. В основном в статье освещаются проблемы, связанные с настройкой связки PHP vs MySQL. Главное, что нужно запомнить, что кодировка содержимого БД и кодировка соединения должны совпадать. Ну, мы немного отклонились от темы.
для тех у кого еще нет, приведу несколько фактов:
utf-8 полностью совместим с ASCII
utf-8 включает миллионы символов почти всех письменностей мира против 256 русских букв в windows-1251 (перечислять зачем это надо нужно только младенцу в программировании, хотя бы сайт на нескольких языках сделать)
utf-8 является самосинхронизирующейся кодировкой
uft-8 является стандартом современных технологий обмена данными (напр., AJAX + JSON, XML)
utf-8 является рекомендацией W3C
utf-8 лучше воспринимается поисковиками, а sitemap и rss вообще обязаны быть в этой кодировке
utf-8 будет нативной кодировкой для строковых функций в PHP 6
utf-8 содержит типографские знаки, так необходимые для красивого оформления текста (кое-кто вставлял даже изображения вместо недостающих символов)
utf-8 стала стандартом для почти всех популярных форумных движков (напр. phpBB начиная с 3, кажется)
если немного подумать, то наверное найдутся еще преимущества, но я напоследок приведу несколько цитат, слова из одной книжки по HTML и отрывок из письма самого создателя cp1251 (одного из):
wiki: "Windows-1251 ... Пользуется довольно большой популярностью. Была создана на базе кодировок, использовавшихся в ранних «самопальных» русификаторах Windows в 1990—1991 гг." (что как бы намекает)
msdn.microsoft.com: "... to help developers move their applications to Unicode. Using Unicode is recommended in preference to any code page because it has better language support and is less ambiguous than any of the code pages."
HTML и CSS (автор Ростислав Чебыкин): "Сейчас все, что относится к расширенным кодировкам ASCII и подстановкам символов (кроме двух обязательных), окончательно устарело"
Игорь Семенюк (человек принимавший cp1251): "Конечно, вполне возможно, что выработанные рекомендации до Микрософта не дошли, или были им проигнорированы. Hо факт - русские буквы в cp1251 расположены именно так. Может быть, дядю Билла стоит винить в том, что он пошел на поводу у несознательных русских, которые сами не знали, что творят? :-) Честно скажу, я тогда про ISO8859-5 не знал напрочь. Знал бы, никогда бы за cp1261 выступать не стал бы." (cp1261 - естественно, авторская опечатка)