БлогNot. Решаем проблему с Юникодом в Denwer’e

Решаем проблему с Юникодом в Denwer’e

Многие (особенно начинающие) разработчики на постсоветском пространстве используют для локального написания PHP-скриптов этот славный пакет. Однако, даже прописав в скрипте правильный тип документа

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

и, шагая в ногу со временем, указав на своих страницах мета-тег Юникода

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

они получают на локалхосте "кракозябры" вместо кириллицы, при том, что на хостинге всё отображается нормально.

Или просто

<!DOCTYPE html>

и

<meta charset="utf-8">

для HTML5 - на наличие проблемы это никак не влияет :)

Проблема заключается в том, что даже в свежих сборках Denwer'а в конфигурационном файле встроенного Apache-сервера кодировкой по умолчанию красуется Windows-1251. По этой причине в браузеры насильно передается инструкция использования именно этой кодировки для чтения открываемых сайтов. Обычно эта инструкция воспринимается браузером как имеющая более высокий приоритет, и браузер уже не обращает внимания, что вы передаёте содержимое в другой кодировке.

Решить проблему можно одним из двух способов:

1. Отредактировать файл конфигурации Apache httpd.conf и заставить Denwer забыть о Windows-1251.

Файл с указанным именем находится в папке /usr/local/apache/conf/ созданного Denwer'ом логического диска (по умолчанию z:). Редактировать можно любым текстовым редактором, даже Блокнотом. Просто находим (комбинация клавиш Ctrl+F) строку с записью

AddDefaultCharset windows-1251 

и меняем её на

AddDefaultCharset utf-8

После этого перезапускаем Денвер. Сделанное изменение повлияет на все локальные сайты, так что если такой путь не подходит, используйте вариант 2, тем более, он и на реальном хостинге поможет.

2. Создать для сайта собственный файл .htaccess

Этим способом мы меняем кодировку, подставляемую по умолчанию для конкретного сайта или определённого каталога на сайте, например, если сайт находится на диске Денвера по адресу z:/home/localhost/www/mysite (т.е. представляет собой вложенную в корень сайта папку, к которой можно обращаться браузером по URL-адресу http://localhost/mysite/ ), то в этой папке нам надо создать файл с именем .htaccess (да-да, имя именно начинается с точки, "как это" - см. ниже) и указать там ту же волшебную строку:

AddDefaultCharset utf-8

Проверено, работает. Ну а я Денвером не пользуюсь, так что у меня работает и так :)

Для создания файла, имя которого начинается с точки, используйте не окошечко Windows, а любой нормальный файл-менеджер, такой как Far Manager или Total Commander.

15.10.2014, 10:27 [13965 просмотров]


теги: textprocessing ошибка сервер браузеры

К этой статье пока нет комментариев, Ваш будет первым