Unicode кодировка (HTML)

Asar

Новичок
Unicode кодировка (HTML)

Всегда делал страницы с виндовой кодировкой, сейчас понадобилась юникодовая - будет несколько языков, да и тире легче вставлять.
Соответственно, проставляю:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

При этом без дополнительных настроек и в FF, и в IE вылазят кракозябры вместо кириллицы. Только после установки руками в самом браузере кодировки юникода всё отражается нормально.
Вопрос: что я сделал не правильно? Ведь не может же так быть, чтоб современные браузеры автоматом UTF-8 не отлавливали, тем более, что он прописан в чарсете...
 

Scud

Новичок
Может сервер отсылает заголовок с другой кодировкой?
 

Asar

Новичок
Брр. Вроде бы всё Ок. Или нет? :

Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept-Encoding: gzip,deflate
Accept-Language: en-us,en;q=0.5
Connection: close
 

Asar

Новичок
Брр. Что-то опять тупить я начал, шарюсь по пхп.нет, никак не отрою. Как тогда глянуть серверные?
 

BRat

o_0
можно и так [m]apache_response_headers[/m] .. но прогой как-то удобней

У тебя php файл, или html?
 

Asar

Новичок
PHP

С помощью проги получен список заголовков:

HTTP/1.1 200 OK
Server: nginx/0.3.30
Date: Fri, 16 Mar 2007 13:52:46 GMT
Content-Type: text/html; charset=windows-1251
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/4.4.0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Last-Modified: Fri, 16 Mar 2007 13:52:46 GMT

Оно?
 

BRat

o_0
так чего ты заморачиваешься..ставь
Header("Content-Type ...utf-8")
это перезапишет тип, по умолчанию сервером выдаваемый
Вот если б был html, тогда проблема )
 

Asar

Новичок
Проставил header("Content-Type: text/html; charset=utf-8");
Результат всё тот же.
Чивойто я не догоняю...
?
 

BRat

o_0
Asar
как тоже самое? Прога показывает "Content-Type: text/html; charset=windows-1251" ?
Если да, попробуй включить вывод ошибок, возможно у тебя этот заголовок не отсылается
 

Asar

Новичок
Поставил ini_set('error_reporting', E_ALL);
Ничего нового не выводится...
?

-~{}~ 16.03.07 17:41:

На локальном компе все Ок -- выводится заголовок ЮТФ и кракозябров нету...

-~{}~ 16.03.07 17:56:

ini_set('display_errors','On');
error_reporting(E_ALL ^E_NOTICE);

Тоже ошибок не выводит...
 

phprus

Moderator
Команда форума
Asar
ini_set('display_errors','On');
error_reporting(E_ALL ^E_NOTICE);
А если написать:
ini_set('display_errors','On');
error_reporting(E_ALL);
То тоже нет ошибок?

[На правах предположения]
А если посмотреть конфиги nginx? Может это он каким-то образом подменяет кодировку?
[/На правах предположения]

P.S. Сам я с nginx не работал и по этому я точно не знаю может ли он сделать такое или нет.

Update:
hermit_refined
"русский" ли у вас апач
А это мысль. Если за nginx стоит русский апач, то он может ломать кодировку.
 

Asar

Новичок
Техподдержка хостера грешила уже на setlocale и на то, что надо сохранять вообще файлы через блокнот. Пока не помогло...

-~{}~ 16.03.07 19:13:

В общем, если кому интересно, резюме таково:

В техподдержке дозвонился до более грамотного товарища, он признался, что апач-таки русский, в связи с чем пришлось подрихтовать .htaccess:

charsetdisable on
adddefaultcharset utf-8

Может, кому еще подможет...
З. Ы. Хостер - peterhost.
 
Сверху