Решаем проблему с кодировкой UTF-8 в Denwer’e…
Ex.clusive | 06.12.2010Не так давно публиковал пост “Выбираем кодировку: Windows-1251 или UTF-8…“, в котором кратко рассказывал об основных отличиях этих кодировок и давал рекомендации по их использованию. Как и обещал ранее, пишу статью для тех, у кого возникают проблемы с просмотром сайтов, использующих кодировку UTF-8 через пакет для веб-разработки “Denwer”.
На самом деле, причины для возникновения таких проблем могут быть абсолютно разные. Сейчас же я расскажу Вам только про одну из них, а именно про проблему, связанную с кодировкой, установленной в настройках Denwer’a по-умолчанию. Причем, в действительности, с ней можно столкнуться абсолютно на любом Apache-сервере. Просто я буду описывать необходимые действия именно в тех условиях, которые были у меня.
Заключается проблема в том, что в конфигурационном файле Денверовского Apache-сервера в качестве дефолтной кодировки красуется “Windows-1251″, по этой причине в браузеры насильно передается инструкция использования именно этой кодировки для чтения открываемых сайтов. Очень часто эта инструкция воспринимается как основополагающая, и браузер не обращает внимания на то, что Вы передаете с помощью мета-тега “<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>” или через параметр header в PHP.
Для того, чтобы исправить это, нам необходимо поменять эту самую инструкцию. Сделать это мы можем одним из двух описанных ниже способов…
Способ №1 – редактируем файл httpd.conf
httpd.conf отвечает за глобальные инструкции для сервера, т.е. внесенные в него изменения повлияют на все сайты, которые у нас будут храниться на сервере. Располагается он в каталоге /usr/local/apache/conf/. Отредактировать нам требуется всего одну строку: ищем “AddDefaultCharset windows-1251″ и меняем её на “AddDefaultCharset utf-8″.
Способ №2 – редактируем файл .htaccess
Этот метод решения поставленной задачи куда более консервативный. Его следует использовать, когда нам требуется изменить кодировку, подставляемую по-умолчанию для отдельного сайта или для определённого каталога на сайте.
Для этого необходимо найти в папке сайта (в корневом или другом интересующем нас каталоге) файл “.htaccess”, либо создать его, и добавить в него следующие строчки:
CharsetDisable on CharsetDefault utf-8 CharsetSourceEnc utf-8 AddDefaultCharset utf-8
Лично я выбрал кардинальный способ решения проблемы и отредактировал файл httpd.conf, так как я все равно собрался все расположенные на Денвере проекты перегнать в UTF-8. Буду рад, если описанные мною методы помогут кому-либо ещё. Если знаете другие варианты решения вышеупомянутой проблемы – поделитесь, обязательно опубликую их _)
P.S: Только что получил от автора блога “SEOGramota.ru” инвайт для регистрации в социальной сети для блогеров “Webice.ru“, за что ему очень благодарен.
Во втором способе можно прописать просто:
AddDefaultCharset utf-8
Хотя это не суть ;)
Ну да, обычно и этого достаточно. Но где-то вычитал, что некоторым только полный набор параметров помогает.
Всегда выбирал второй вариант так как на Денвере есть сайты в обоих кодировках и когда что то тестирую то желательно иметь выбор.
Если собираетесь выкладывать сайт в Инет, то однозначно надо использовать 2 способ,
т.к. хостинг-провайдер врядли даст возможность редактировать httpd.conf
На всех современных хостингах, как правило, и так стоит по-умолчанию UTF-8. Если нет – то второй способ и правда куда уместней.
Спасибо, помогло!
только вот кстати при вводе полного текст, выводилась ошибка, а если писать только AddDefaultCharset utf-8, то все работает!
Тоже выбрал второй способ, и, как в предыдущем комментарии, при написании полного варианта в htaccess сервер выдавал ошибку при открытии сайта, а написание только строчки AddDefaultCharset utf-8 решило все мои проблемы со страницами с кодировкой Юникод.
Странно, я сейчас проверил – у мну никаких ошибок нет. Видимо, еще где-то что-то настраивал до того…
В любом случае – метод “Тыка” и “Перебора” всё решает _)
Спс. Решил проблему с кодировкой.
человек спасибо тебе огромадное! вообще так и получилось мне лично помог 1 способ
задача заключалась в том что все созданные файлы были в utf-8 в мета тегах utf-8 все создавалось на eclipse БРАУЗЕР определял utf-8 а вывод был кириллицы в win-1251 думал уже eclips гонит все перепробовал убил уйму времени а как выяснилось от яндекса и гугла : НЕПРАВИЛЬНАЯ постановка вопроса приводит вас не туда куда вам хотелось) спасибо)
Очень рад, что это решение Вам помогло )
спс, материал,что надо,без заморочек все по теме
Спасибо за статью, первый способ решил проблему.
Спасибо Вам большое!!! Я тоже решила проблему с кодировкой первым способом.
Я уже всё испробовал, и мета тег стоит и header указал, и описанный выше способ тоже выполнил но данные из контроллера CI которые идут как простая строка всё равно идут в windows-1251 и в браузере отображаются вопросы. Может что ещё забыл может подскажите.
Спасибо большое. А пол Яндекса перерыл, и только по ссылке на вас нашел!
Спасибо! А то уже замучилась в Опере просматривать! Теперь можно вернуться к любимому Firefox)
Спасибо за статью всё теперь правильно отображается)))
спасибо!!! коротко и то что нужно )))
Большое спасибо
Спасибо большое!
Первый способ помог. Непонятно, почему windows-1251 стоит по дефолту, а не utf-8.
Большое спасибо автору.
Спасибо большое! Очень подробно написано что и как сделать! Единственный ньюанс не сразу дошло, что нужно было перегрузить денвер!
Спасибо, бро!
Всем привет, я много раз решал данные проблемы с кодировкой. мне казалось я все уже знаю, но встретился с проблемой, что на сайте отображалась все равно кодировка другая windows-1251.
Мне нужна была UTF-8.
В файле .htaccess строки
CharsetDefault utf-8
не всегда достаточно, в этом я убедился на личном опыте,
я описал проблему подробно, и подробное решение я написал здесь
http://www.phpwebmaster.ru/blogs/php/charset.html
Первый пост Никиты спас мне жизнь!
Я часов 5 потратил, и решил отчаянно почитать комменты!
Работает только если 1 строка AddDefaultCharset utf-8
Именно в этом и суть, если все 4 – то вообще не работает сайт
Прикольный эффект с БадиПресс (думаю так будет с любым скриптом моментальных комментариев). Страница отображается правильно а моментальные комментарии на AJAX или JQuery (не знаю точно, не разбираюсь в этом) отображаются аброй-кадаброй. После обновления страницы – всё в норме. Вылечил первым способом. Думаю, второй способ здесь не поможет. Спасибо.
Спасибо! Все решено вторым способом. Месяц мучился, пока вопросом в плотную не занялся при помощи вас.
я тоже мучился, статья реально помогла! Всё работает
Огромное спасибо автору! Очень помог!
спасибо,помогло
У меня проблема несколько иного характера. Фрагмент вырезанный из документа в кодировке UTF-8 сразу в браузере отображается нормально (с использованием приведенных выше рекомендаций), но когда вношу его в БД, то в таблице phpMyAdmin отображаются кракозябры, а когда достаю из таблицы и вывожу в браузер, то некоторые символы тоже отображаются не корректно. Например вместо заглавной “И” показывает эти символы �? . Подскажите, как исправить. Заранее благодарен.
Проверьте еще раз кодировку документа, из которого берется фрагмент, потом кодировку файла-обработчика PHP, ну и, конечно же – кодировку самой базы…
Самый лучше вариант закомментировать строку “AddDefaultCharset windows-1251″ поставив в начале “#” чтобы броузер сам смотрел кодировку
спасибо!!!!!! статья помоглаочень. спасибо автору огромное
Спасибо автору за помощь!!!
Сам бы в жизнь не разобрался!
Спасибо, Добрый человек! Помогло, применил первый вариант.
Спасибо!
Спасибо!
Понравились оба варианта.
Помогает.
Спасибо большое! Первый метод помог!!!!
спасибо большое очень помогло
Начинаю закладывать тебе памятник…я уже не знал что делать с этим!!! Спасибо!
Спасибо брательник!!! Очень помог!
Спасибо!!!Очень помогло.
Спасибо! Потратил кучу времени на поиски, уже почти забил и случайно наткнулся на статью.
Не помогло ни то ни другое. Второй способ при полном вводе действительно выдаёт ошибку на Денвере. Краткий не дал никаких результатов, как и первый.
Спасибо, автор! помогло!
Спасибо, дружище! Первый способ сработал и вполне устраивает. Думал в базе кодировка неверная, но оказалось, что с ней все в порядке – копать нужно было в Denwer.
Талантище!!! Побольше бы таких как вы и Огромное спасибо за помощь в проблеме которую даже мой учитель не смог решить)
Спасибо! Огромное спасибо!
Способ не сработал. Но сработало в самом файле.
mysql_query (“set character_set_results=’utf8′”);
Спасибо большое, эти кодировки просто беда извечная)) Первый способ помог, а вот с .htaccess денвер выдал ошибку, мол старый вариант, я такое не поддерживаю, ось windows 8.
AddDefaultCharset windows-1251 этот параметр можно закоментировать, тогда вообще проблем с кодировками не должно возникать
Прописал в .htaccess utf 8
получилось что с www возращает Content-Type: text/html; charset=iso-8859-1
а без www все в порядке utf 8
можно это исправить?
Благодарю!Помогло…
Спасибо помогло!
Подскажите,где конкретно нужно поменять файл .htaccess,в какой паке?первый способ не помог. У меня инфу из бд которая на русском вытаскивает в виде вопросов, а английскую нормально,код пишу в notepad’e в кодировке utf 8,в настройках денвера меняю разную кодировку,не помогает.
Автор, спасибо! сработало! использовал 1й способ. просто закоментить # как советует товарищ Sect0R не работает, пробовал!!
Решение с кодировкой в Denvere!
httpd.conf отвечает за глобальные инструкции для сервера, т.е. внесенные в него изменения повлияют на все сайты, которые у нас будут храниться на сервере. Располагается он в каталоге /usr/local/apache/conf/. Отредактировать нам требуется всего одну строку: ищем “AddDefaultCharset windows-1251″ и меняем её на “AddDefaultCharset utf-8″.
Отлично всё работает!!!
Отличная статья, спасибо за помощь ;)
спасибо!)
Спасибо большое , незнал куда дется , а то такой проект сделал боялся что уже не запустится)
Спасибо автору!
Была проблема: при отображении на Денвере сайта все работало нормально, но включаемые файлы HTML на той-же странице отображались всеми знакомымы кракозябрами. Перепробовал много всего, но только второй вариант с одной строчкой AddDefaultCharset utf-8 все решил!
Спасибо как автору, так и посетителям за комментарии
Ой спасибо и тебе дружище и тому кто сказал, что денвер перегрузить надо, а то мозг уже совсем не варил.
Спасибо, дружище! Весь извёлся уже.
Такая проблема в Denwer! При запуске первая страница сайта(она же главная), С нормальными латинскими буквами! При переходе на другие страницы сайта появляются вот такие знаки Рщи, СЃ, как их убрать? Это же кодировка влияет или что?
Спасибо, была бы реклама потыкала бы на неё всю.
Спасибо за такую полезную информацию!!!!!
Первый способ помог. Спасибо большое!
В Статье все правильно, кроме главного – содержимого файла .htaccess.
Вместо: # AddDefaultCharset utf-8 – не работает
Следует писать:
# Работает:
AddType “text/html; charset=utf-8″ .shtml
СПАСИБО БОЛЬШОЕ -ЖИЗНЬ СПАС
Чтото комментарии с 12.2013 не обновлялись)
неужели на новом Денвере определение кодировки поправили;)?
спасибо, мужчина!
Благодарю, помог
+
Спасибо. Первый способ, сразу в точку. Денверовцы спецом чтоли такуй какашку подложили.
Ребята у меня проблема воообще странная возникла.
Скидываю файл аксесс в корень папки и русский язык понимает только фаил index.php остальные просто отказываются понимать.
помог!
автор, огромное спасибо, несколько часов мучился, при экспорте .sql выбирал utf-8, при импорте тоже utf-8. Загружаю сайт на локалхост, а там каляки-маляки. Поменял дефолтную кодировку в httpd.conf. Все заработало. Muchas gracias.