AddDefaultCharset

Добавив директиву adddefaultcharset utf-8 в .htaccess можно задать кодировку для всех файлов в текущем каталоге и других каталогах, находящихся ниже в иерархическом дереве.

 

AddDefaultCharset utf-8 в .htaccess

Кодировка веб страницы определяется тем, в каком формате ее содержимое было сохранено перед загрузкой на сервер.

 

Также в HTML5 прописывается заголовок, указывающий браузеру какую кодировку использовать:

<meta charset=»UTF-8">

 

 

После загрузки бОльшее значение начинает иметь кодировка, указываемая в конфигурационном файле веб-сервера. Кодировка задается за счет AddDefaultCharset, это может быть стандартная utf-8 или любая другая кодировка

 

<VirtualHost :80>
ServerName example.com
AddDefaultCharset utf-8

</VirtualHost>

 

Это правило актуально для всего виртуального хоста, т.е. для всех страниц, которые будут относиться к сайту.

Если директиву не указывать остается возможность более тонкой настройки за счет  файла .htaccess.

 

Файлов .htaccess может присутствовать неограниченное количество, по одному в каждом каталоге. Например, .htaccess в домашнем каталоге www/example.com/, .htaccess в  www/example.com/admin и т.д.

 

В каждом из них может задаваться своя кодировка, в некоторых случаях это требуется. Возможно такое поведение только при использовании в качестве веб-сервера Apache поскольку .htaccess обрабатывается исключительно им.

 

mcedit www/example.com/.htaccess

adddefaultcharset utf-8

Для корня ресурса задана кодировка UTF-8, для каких-то из вложенных каталогов ее можно переопределить добавив директиву с другим значением в .htaccess

 

 

mcedit www/example.com/admin/.htaccess

adddefaultcharset windows-1251

 

Все файлы, отдаваемые сервером из www/example.com/admin теперь будут в кодировке windows-1251

Проверять можно используя консольную утилиту curl или при помощи сервиса, выводящего заголовки при HTTP запросе.

 

 

Чтобы избежать некорректного отображения страниц лучше везде указывать UTF-8: в meta-тэгах, конфигурационных файлах веб-сервера (или .htaccess) и настройках MySQL.

 

Читайте про HTTP ответы сервера и о том, как пользоваться curl