Вопрос: Как в файле htaccess задать кодировку сайта UTF-8?
Ответ: Чтобы задать кодировку сайта по-умолчанию для любого браузера, необходимо в файле .htaccess прописать лишь одну строчку:
[sociallocker]
Для сайтов на WordPress по-умолчанию идет UTF-8, поэтому выбираем подходящий вариант. Для сайтов на других CMS (DLE, Joomla и пр.), либо на самописных «движках» может использоваться WINDOWS-1251.
Посмотрите видео ниже как правильно вставлять указанною строку кодировки в файл htaccess.
[sociallocker] [/sociallocker]
Когда необходимо задавать кодировку в htaccess UTF-8 или windows-1251
Очень часто владельцы сайтов сталкиваются с проблемой «вместо русских букв вопросы . «. Зачастую подобное происходит из-за некорректной обработки браузерами кодировки вашего сайта.
Размещая в файле htaccess указанные выше строки, вы избавляете себя от этой проблемы.
Стоит оговориться, что не всегда причиной знаков . вместо букв является неправильная кодировка сайта. Если вы вносили какие-то изменения в файлы шаблона/темы сайта на UTF-8, то может понадобиться преобразовать в UTF-8 без BOM.
Кодировка веб страницы определяется тем, в каком формате ее содержимое было сохранено перед загрузкой на сервер.
Также в HTML5 прописывается заголовок, указывающий браузеру какую кодировку использовать:
После загрузки бОльшее значение начинает иметь кодировка, указываемая в конфигурационном файле веб-сервера. Кодировка задается за счет AddDefaultCharset, это может быть стандартная utf-8 или любая другая кодировка
ServerName example.com
AddDefaultCharset utf-8
Это правило актуально для всего виртуального хоста, т.е. для всех страниц, которые будут относиться к сайту.
Если директиву не указывать остается возможность более тонкой настройки за счет файла .htaccess.
Файлов .htaccess может присутствовать неограниченное количество, по одному в каждом каталоге. Например, .htaccess в домашнем каталоге www/example.com/, .htaccess в www/example.com/admin и т.д.
В каждом из них может задаваться своя кодировка, в некоторых случаях это требуется. Возможно такое поведение только при использовании в качестве веб-сервера Apache поскольку .htaccess обрабатывается исключительно им.
adddefaultcharset utf-8
Для корня ресурса задана кодировка UTF-8, для каких-то из вложенных каталогов ее можно переопределить добавив директиву с другим значением в .htaccess
adddefaultcharset windows-1251
Все файлы, отдаваемые сервером из www/example.com/admin теперь будут в кодировке windows-1251
Проверять можно используя консольную утилиту curl или при помощи сервиса, выводящего заголовки при HTTP запросе.
Чтобы избежать некорректного отображения страниц лучше везде указывать UTF-8: в meta-тэгах, конфигурационных файлах веб-сервера (или .htaccess) и настройках MySQL.
Читайте про HTTP ответы сервера и о том, как пользоваться curl
Сегодня еще одна заметка из цикла о работе с кодировкой текста.
Вот ссылочки, чтобы увидеть предыдущие публикации:
Сейчас я бы хотел рассказать еще об одной проблеме, связанной с кодировкой.
Когда вы просматриваете файл на своем компьютере, с кодировкой все может быть нормально, но при размещении его на веб-сервере, начинают появляться проблемы.
В чем дело? Почему так происходит?
Дело в том, что иногда бывают такие веб-сервера, в настройках которых, явно прописано в какой кодировке отображать текст в браузере. Причем, эта кодировка выдается браузеру принудительно и обычный пользователь не может ничего изменить.
Команда от сервера является главной.
Если происходит такой момент, что кодировка, в которой документ написан и кодировка, которую требует сервер, не совпадают, тогда и появляется неприятная ситуация – кодировка текста отобразиться не верно.
Особенно такая ситуация часто возникает на бесплатных хостингах.
Вот и получается ситуация, что на вашем домашнем компьютере все работает замечательно, но как только вы публикуете файл на сервере, начинаются проблемы.
Как это исправить?
Есть два основных пути:
1) Преобразовать кодировку текста в тот формат, который требует сервер.
Как это сделать, я писал здесь:
2) Подкорректировать требования сервера (если есть такая возможность)
Давайте рассмотрим ситуацию, если вы имеете дело с веб-сервером Apache.
У этого веб-сервера есть такой файлик, который называется htaccess. Он отвечает за настройки сервера, которые можно задавать, не вмешиваясь в настроечные файлы самого сервера. Я сейчас не буду о нем подробно рассказывать, это не входит в рамки этой заметки.
Вам нужно просто найти его в корневой папке вашего сайта, если его там нет, то тогда его нужно будет создать и добавить там следующую строку кода:
Вместо UTF-8 можно указать любую другую кодировку.
Команда AddDefaultCharset – задает кодировку текста, которая будет использоваться сервером по умолчанию.
Если вы, наоборот, хотите, чтобы сервер не задавал кодировку по умолчанию, то это можно сделать так:
Вот так настройки сервера могут очень сильно испортить вам жизнь и добавить головной боли с кодировкой. Имейте это в виду и хотя бы знайте, в какую сторону нужно искать.