Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Почему-то браузер не воспринимает meta charset UTF-8...
 
 автор: Evgen   (06.05.2013 в 14:54)   письмо автору
 
 

Здравствуйте!

Помогите плз, чето мозги закипают =/

Инструкция
<meta content="text/html; charset=utf-8" http-equiv="content-type">
не исполняется, текст на странице, как и положено в таком случае - крякозябра полная...

Руками в меню "...Кодировка" задашь UTF-8 - нормально читается страница. А судя по галкам, браузер считает, что страница содержит текст Win-1251. Откуда они это берут? Где поискать "зарытую собаку"?

ЗЫ. Опера, хром и FF дают одинаковый результат.

  Ответить  
 
 автор: яса1   (06.05.2013 в 16:11)   письмо автору
 
   для: Evgen   (06.05.2013 в 14:54)
 

1. тег <META charset> не устанавливает кодировку, а лишь сообщает браузеру о кодировке
т.е. если фактически ваш HTML-редактор настроен под кодировку windows-1251, то вы можете
хоть двадцать пять раз прописать <META charset="utf-8"> - в браузер всё-равно
придёт кодировка windows-1251

[это как тег <META keywords description> - сайт вполне может быть по содержанию педофильским,
а в этом теге будет что-то о художественно-прекрасном
именно так раньше обманывали поисковые системы
поэтому поисковики теперь первым делом сравнивают данные этого тега с фактическими словами
в теле сайта и если находят несоответствие между первым и вторым, сразу же относят страницу к
сомнительным и существенно понижают её рейтинг]

2. если вы не знаете - какая кодировка в вашем HTML-редакторе, то напишите какой-нить
коротенький HTML-файл с русским текстом, не прописывая в нём <META charset> и запустите в
браузере, предварительно установив в браузере "Автоматическое определение кодировки"
когда страница с вашим файлом загрузится (и все русские буквы будут читабельны), посмотрите
"Информацию о странице" - там будет прописана определённая браузером фактическая кодировка
вашего HTML-редактора

3. если кодировка вашего HTML-редактора вас не устроит, соответственно, писать вам надо будет
в HTML-редакторе, в котором есть возможность сохранить файл в нужной кодировке
сам я использую Notepad++ (в сети найдёте, он бесплатен)
в нём есть пункт меню "Кодировка", в ней надо выбрать "Кодировать в UTF-8 (без BOM)"

4. всё это будет нормально работать из-под вашего локального компьютера
однако, при сохранении на сервере вполне возможна проблема
дело в том, что в серверном файле .htaccess существует команда принудительной установки
кодировки
, в которую сервер преобразует ВСЕ свои файлы, отдавая их браузерам пользователей
и вполне может быть, что там у вас прописано AddDefaultCharset windows-1251
эту строчку вам надо просто удалить - тогда по умолчанию будет utf-8 (а лучше принудительно
записать AddDefaultCharset utf-8)

  Ответить  
 
 автор: Evgen   (06.05.2013 в 19:12)   письмо автору
 
   для: яса1   (06.05.2013 в 16:11)
 

яса1 огромный респект, заработало =D !!!

CMS джумла, в БД инфа в UTF-8 - всё ОК!

Причина была в том, что у Вас описано в п.4 - зашел на хост, а там в настройках вирт сервера "Кодировка сайта - win1251".
Поменял на utf - всё встало на свои места! Стало быть настройки сервера оказались важнее для браузеров, чем мой хидер...

Были уже неск лет назад подобные заморочки - не знал, что можно было таким не сложным способом вылечить. Тогда, я помню, менял кодировку контента %

Спасибо ещё раз!

  Ответить  
 
 автор: confirm   (06.05.2013 в 20:00)   письмо автору
 
   для: Evgen   (06.05.2013 в 19:12)
 

meta content="text/html; charset=utf-8, это не заголовок, вот если бы вы передавали его как
header(), вот это было бы заголовком, а так ваш сервер передавал этот заголовок со значением по умолчанию.

  Ответить  
 
 автор: Evgen   (06.05.2013 в 22:02)   письмо автору
 
   для: confirm   (06.05.2013 в 20:00)
 

Да, пардон, ошибся. Имел ввиду <head>, а написал совсем другое...

  Ответить  
 
 автор: confirm   (06.05.2013 в 22:31)   письмо автору
 
   для: Evgen   (06.05.2013 в 22:02)
 

:)
<?php
header
('Content-type: text/html; charset=utf-8');

Вот это переданный сервером заголовок, а <head>, это html тег.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования