Кодировка сайта: 4 столпа мудрости.
Большое количество вопросов по кодировкам, не имеющих отношения к БД, побудило меня составить небольшое сводное руководство по данному вопросу.
Итак, кодировка нашего сайта складывается из 4 пунктов:
1. Кодировка базы данных.
* Задается при создании таблиц.
* Может быть любая. Должна отражать реальную кодировку данных в таблице.
* Например, если данные у нас будут лежать в кодировке Windows-1251, то создавая таблицу, пишем CREATE TABLE chartest (string text) DEFAULT CHARSET=cp1251;
* Проверить текущую кодировку таблицы можно запросом SHOW CREATE TABLE tablename
2. Кодировка клиента БД (клиентом в данном случае является скрипт, работающий с БД).
* Задается сразу после соединения с БД, запросом SET NAMES кодировка
* Должна совпадать с кодировкой страницы.
* Например, если страница у нас в utf-8, то в PHP пишем mysql_query("SET NAMES utf8");
* Проверить можно запросом show variables like '%char%'; (переменные character_set_client, character_set_connection и character_set_results должны иметь установленное нами значение)
3. Кодировка страницы.
* Задается HTTP заголовком "Content-type". Задать его можно в настройках PHP или веб-сервера, а так же напрямую в коде.
* Должна соответствовать кодировке данных на странице.
* Например, если страница у нас в utf-8, то в PHP напишем header("Content-Type: text/html; charset=UTF-8");
* Проверить можно, выбрав в браузере пункт меню Вид - кодировка. Так же полезно посмотреть, какую кодировку шлет сервер в заголовке.
4. Кодировка данных на странице.
* Задается в редакторе.
* Должна соответствовать той кодировке, которую мы хотим.
* Особых рекомендаций здесь дать невозможно, но хотя бы минимальная компьютерная грамотность, чтобы выбрать в редакторе желаемую кодировку при сохранении, автору сайта необходима.
Примечание: Обозначения кодировок в mysql могут не совпадать с общепринятыми. Внимательно смотрите примеры.
Взято из http://phpfaq.ru/charset
Большое количество вопросов по кодировкам, не имеющих отношения к БД, побудило меня составить небольшое сводное руководство по данному вопросу.
Итак, кодировка нашего сайта складывается из 4 пунктов:
1. Кодировка базы данных.
* Задается при создании таблиц.
* Может быть любая. Должна отражать реальную кодировку данных в таблице.
* Например, если данные у нас будут лежать в кодировке Windows-1251, то создавая таблицу, пишем CREATE TABLE chartest (string text) DEFAULT CHARSET=cp1251;
* Проверить текущую кодировку таблицы можно запросом SHOW CREATE TABLE tablename
2. Кодировка клиента БД (клиентом в данном случае является скрипт, работающий с БД).
* Задается сразу после соединения с БД, запросом SET NAMES кодировка
* Должна совпадать с кодировкой страницы.
* Например, если страница у нас в utf-8, то в PHP пишем mysql_query("SET NAMES utf8");
* Проверить можно запросом show variables like '%char%'; (переменные character_set_client, character_set_connection и character_set_results должны иметь установленное нами значение)
3. Кодировка страницы.
* Задается HTTP заголовком "Content-type". Задать его можно в настройках PHP или веб-сервера, а так же напрямую в коде.
* Должна соответствовать кодировке данных на странице.
* Например, если страница у нас в utf-8, то в PHP напишем header("Content-Type: text/html; charset=UTF-8");
* Проверить можно, выбрав в браузере пункт меню Вид - кодировка. Так же полезно посмотреть, какую кодировку шлет сервер в заголовке.
4. Кодировка данных на странице.
* Задается в редакторе.
* Должна соответствовать той кодировке, которую мы хотим.
* Особых рекомендаций здесь дать невозможно, но хотя бы минимальная компьютерная грамотность, чтобы выбрать в редакторе желаемую кодировку при сохранении, автору сайта необходима.
Примечание: Обозначения кодировок в mysql могут не совпадать с общепринятыми. Внимательно смотрите примеры.
Взято из http://phpfaq.ru/charset