Добавив директиву adddefaultcharset в .htaccess можно задать кодировку для всех файлов в текущем каталоге и других каталогах, находящихся ниже в иерархическом дереве.
AddDefaultCharset в .htaccess
Где вообще для веб приложения может задаваться кодировка
1. Кодировка веб страницы определяется тем, в каком формате ее содержимое было сохранено перед загрузкой на сервер.
2. Также в HTML5 прописывается заголовок, указывающий браузеру какую кодировку использовать:
<meta charset='UTF-8'>
3. После загрузки бОльшее значение начинает иметь кодировка, указываемая в конфигурационном файле веб-сервера.
Кодировка задается за счет AddDefaultCharset, это может быть стандартная utf-8 или любая другая кодировка
<VirtualHost :80>
ServerName example.com
AddDefaultCharset utf-8
…
</VirtualHost>
Если директиву не указывать остается возможность более тонкой настройки за счет файла .htaccess.
Файлов .htaccess может присутствовать на сервере неограниченное количество, по одному в каждом каталоге.
Например, .htaccess в домашнем каталоге www/example.com/, .htaccess в www/example.com/admin и т.д.
Какие из файлов будут обрабатываться веб-сервером определяет параметр конфигурации Allowoverride.
В каждом из них может задаваться своя кодировка, в некоторых случаях это требуется.
Возможно такое поведение только при использовании в качестве веб-сервера 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
Как проверить значение установленное через adddefaultcharset
Проверять можно используя консольную утилиту curl или при помощи сервиса, выводящего заголовки при HTTP запросе.
Примеры вывода при выполнении команды curl -I 123.123.123.123
До добавлении последней приведенной инструкции в .htaccess
После добавлении последней приведенной инструкции в .htaccess
На втором скриншоте видно, что появился заголовок charset
Чтобы избежать некорректного отображения страниц для современных сайтов лучше везде указывать одну кодировку.
Для современных сайтов обычно это UTF-8. Кодировка задается в meta-тэгах, конфигурационных файлах веб-сервера (или .htaccess) и настройках MySQL.
Читайте про HTTP ответы сервера и о том, как пользоваться curl