Смена кодировки сайта — ключевые моменты

В этом небольшом посте я расскажу как сменить кодировку самописного сайта т.к. смена кодировки сайта на готовой CMS по своему большинству не вызывает затруднений и вообще редко требуется т.к. все современные системы управления содержимым используют универсальную мультибайтовую кодировку UTF-8.

Если коротко, то примерно так:

Как поменять кодировку в Денвере? Путь для смены кодировки на локальном сервере:

Z -> usr -> local -> apache -> conf -> httpd.conf

  • заходим в диск Z и открываем папку usr;
  • в папке usr открываем папку local;
  • дальше нужно открыть папку apache и в ней открыть папку conf;
  • в папке conf найти файл httpd.conf и открыть его программой Блокнот;
  • найти строку AddDefaultCharset windows-1251 и изменить, например на AddDefaultCharset utf-8.

После перезагрузки Денвера и очистки кэша браузера, все будет работать как вам нужно.
Можно сделать еще по-другому. Найти в том-же файле httpd.conf строку с установкой кодировки, и закомментировать — #AddDefaultCharset windows-1251, тогда будут действовать установки сайта, прописанные в < meta http-equiv=»content-type» content=»text/html; charset=utf-8″ /> ,
что бывает очень удобно.

Теперь более подробно.

Итак, если вы задаетесь вопросом «Как сменить кодировку сайта», то этот пост именно для вас. Давайте приступим к этому достаточно простому делу. Что нам потребуется? Наверное кроме бесплатной программы блокнота Notepad++ больше ничего, хотя можно обойтись и другим ПО, но по моему это самый подходящий для этого инструмент, тем более программа достаточно популярна и скачать её бесплатно с официального сайта не составит труда, тем более он руссифициорован так же как и сама утилита.

Собственно для перехода нашего сайта на другую кодировку нам необходимо выполнить несколько основных шагов:

  1. Смена кодировки файлов сайта;
  2. Изменение кодировки сайта в HTML коде страниц сайта (мета тег <meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″ />).

Далее не обязательным пункты:

  1. Проверить кодировочные настройки сервера (файлы httpd.conf или же .htaccess)
  2. Проверить кодировку базы данных и кодировку соединения с ней.

Так же может понадобится изменение кодировки базы данных, соединения с ней и кодировка сервера (директории сайта).

Для изменения открываем все файлы сайта программой Notepad++ и в верхнем меню программы выбираем пункт «Кодировки», а нем жмем на «Преобразовать в UTF-8 без BOM», далее сохраняем файл и проделываем данные действия со всеми файлами сайта.

Теперь файлы в нужной кодировке и сервер будет их понимать, но для браузеров необходимо так же указать кодировку вашего сайта непосредственно в заголовочной секции страницы <head>, а именно в мета теге  meta http-equiv где charset (кодировка) должна «равняться» utf-8. Это так же должно быть однозначно указано на каждой странице вашего веб ресурса.

Теперь разберемся с веб сервером, я буду вести речь о самом популярном, а именно об Apache и о сборке XAMPP под названием Denwer. Стоит понимать, что кодировка вашего локального сервера (скорее всего это Деневер) и веб сервера на хостинге может не совпадать. У Денвера это windows-1251 и если ваш сайт в utf-8, то страницы будут отображаться не правильно. Изменить кодировку сервера Apache можно двумя путями: глобальный (для всего сервера — требуется доступ к файлу конфигурации httpd.conf Апача) и локальный (более предпочтителен для использования на хостинге при дешевом тарифном плане — требуется создание и/или изменение файла .htaccess). В общем выбирайте наиболее приемлемый для вас путь и поехали, я советую использовать файл .htaccess если вы не знакомы с этими аспектами и читаете данный пост. Создаем в корне сайта файл с названием .htaccess (точка в начале обязательна) и редактируем его любым текстовым редактором, а именно вставляем в него следующую строку «AddDefaultCharset utf-8» (без кавычек), где utf-8 это требуемая кодировка, вам необходимо подставить нужную. По сути данная инструкция говорит «Добивать кодировку по умолчанию». Стоит заметить, что полномочия файла .htaccess распространяются только на директорию в которой он лежит, а так же на все вложенные в неё папки, этим он и отличается от глобального файла настроек сервера httpd.conf.

Елси вы используете на локальном ПК сборку Denwer, то можно изменить кодировку в глобальном файле настроек сервера Apache. Файл находится по адресу Z -> usr -> local -> apache -> conf -> httpd.conf , где Z это виртуальный диск Денвера. Так же открываем этот файл текстовым редактором и находим строку AddDefaultCharset windows-1251 и изменяем, например на AddDefaultCharset utf-8. Для гарантии, после этого сервер лучше перезагрузить. В случае же с файлом .htaccess перезагрузка не требуется т.к. данный файл постоянно читается сервером при формировании ответов на запросы.

Если ваш сайт не использует СУБД, то на этом все, в противном же случае читаем дальше. Так же необходимо изменить кодировку вашей базы данных на ту, которая используется на сайте. В случае с СУБД MySQL можно воспользоваться комплексом phpMyAdmin для этих целей. Выделяем все таблицы и в опциях меняем кодировку на предпочтительную.

Дальнейшие действия не обязательны, но для полноты картины это не мешает сделать. Зачастую, там же в  phpMyAdmin можно выставить и кодировку соединения с базой по умолчанию. Если такой возможности нет, то меняем кодировку соединения после PHP скрипта соединения с базой, перед основными запросами. Для этого добавляем строку (делаем запрос) «mysql_query(«SET NAMES utf8″, $name);» (без кавычек), где  utf8 — требуемая кодировка, а переменная name — работа функции mysql_connect.

На этом все, спасибо за внимание.