Как изменить кодировку Денвера
У пользователей сборки Денвер часто возникает проблема с отображением текстового содержимого сайта (текст отображается в виде кракозябр или вопросительных знаков в ромбиках):
Далее под словом «Денвер» будет подразумеваться сервер Apache, который входит в состав сборки.
- Это может происходить по одной из следующих причин:
- текст имеет кодировку, которая не соответствует указанной в документе или передаваемой сервером;
- кодировка документа указано неверно;
- сервер отдаёт документ, указывая неправильную кодировку.
Первые две причины рассмотрены в посте «Кодировка HTML-документа» и не касаются текущей темы, так как здесь мы будем рассматривать проблемы, связанные с кодировкой Денвера.
Денвер по умолчанию использует кодировку Windows-1251, поэтому если текст страницы закодирован в ней же и она указана в соответствующем атрибуте элемента <meta>
, то проблем возникать не будет. Однако, если текст преобразовать в UTF-8, то, при открытии документа в браузере, весь он превратится в стаю кракозябр и даже не поможет «метауказание» кодировки.
- Решить вышеописанную проблему просто — нужно изменить кодировку, которую отдаёт сервер, на UTF-8. Это можно сделать двумя путями:
- изменить кодировку сервера;
- изменить кодировку сайта.
Меняем кодировку сервера
Чтобы изменить кодировку сервера, нужно отредактировать файл httpd.conf
, который находится в папке Денвера по адресу /usr/local/apache/conf
(открыть его можно с помощью Блокнота или другого текстового редактора). В этом файле, в 498 строке, будет следующая запись:
AddDefaultCharset windows-1251
В этой записи, вместо Windows-1251, нужно указать UTF-8 (регистр значения не имеет) и, сохранив изменения, перезапустить сервер (обязательно).
Меняем кодировку сайта
Чтобы изменить кодировку определённого сайта, понадобиться файл .htaccess
. В нём нужно прописать такую же строку, как и в примере выше (AddDefaultCharset UTF-8), а затем поместить его в корень проекта.
Подробнее об этом способе и о файле .htaccess
рассказано в посте «Кодировка HTML-документа».