Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Отсутствие реакции на META.charset=utf-8

251
13 сентября 2007 года
SkyMаn
1.7K / / 31.07.2007
Есть документ
[HTML]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
Перейти на главную <br />
Ваш заказ принят <br />
Скачать прайс <br />
</body>
</html>[/HTML]

Проблема: В броузерах нужную кодировку не отображает.
Все же правильно написал. Или может на меня три часа ночи действует :D
Валидацию проходит, да и все равно же все правильно. ПРобовал как мазиле, в осле 7-м, так и в оперной программе. Заставлял принудительно перевести в utf-8, но результат - еще хуще. Вывод напрашивается, что исходная кодировка плохая. Но пользуясь онлайн-инструментом:D, конвертация в тот же cp1251 происходит отлично. Проверял и на локалхосте, и на хостинге.
353
13 сентября 2007 года
Nixus
840 / / 04.01.2007
Странно, у мне все отображает.
251
13 сентября 2007 года
SkyMаn
1.7K / / 31.07.2007
Цитата: Nixus
Странно, у мне все отображает.


А меня - нет. ВОт если переключить данную коденетовскую страницу на утф8, то все оу. а если сделать то же, как тут , то не помогает.

15K
13 сентября 2007 года
gruz0
71 / / 23.11.2006
А откуда берется текст, который вставляется в HTML-код?
Из базы или что-то вообще?
353
13 сентября 2007 года
Nixus
840 / / 04.01.2007
Cкорее всего веб-сервер подставляет кодировку в заголовке Content-Type: ....
Лечится в апаче так:
 
Код:
AddDefaultCharset None

или
 
Код:
AddDefaultCharset utf-8
251
13 сентября 2007 года
SkyMаn
1.7K / / 31.07.2007
Цитата: gruz0
А откуда берется текст, который вставляется в HTML-код?
Из базы или что-то вообще?


Ну это не важно на самом деле. Допустим из шаблона.

[quote=Nixus]Cкорее всего веб-сервер подставляет кодировку в заголовке Content-Type: ....
[/quote]
Неа, не подставляет сервер ничего. Снифером проверил. Да и если так, то почему на других страницах отображает нормально? Или почему не только у меня так отображает?
Пробовал - ничего нового.

832
13 сентября 2007 года
Carpus
390 / / 14.04.2005
Может быть текст дважды перекодирован? Т.е. в редакторе стоит кодировка UTF-8, и вставляется текст уже закодированный в UTF-8.
251
13 сентября 2007 года
SkyMаn
1.7K / / 31.07.2007
Нет, тоже исключено....
353
13 сентября 2007 года
Nixus
840 / / 04.01.2007
Изучил то, что выдает веб-сервер. Диагноз: исходный текст в utf-8, еще раз закодирован в utf-8.
Сервер выдает:

Код:
HTTP/1.1 200 OK
Date: Thu, 13 Sep 2007 05:23:11 GMT
Server: Apache/2.2.4 (Win32) DAV/2 mod_ssl/2.2.4 OpenSSL/0.9.8e mod_autoindex_co
lor PHP/5.2.3
X-Powered-By: PHP/5.2.3
Set-Cookie: PHPSESSID=4afe7fa0dd396657dca9ca6121348d5f; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: hotel_city=0; expires=Fri, 12-Sep-2008 05:23:12 GMT
Set-Cookie: hotel_class=0; expires=Fri, 12-Sep-2008 05:23:12 GMT
Set-Cookie: hotel_id=0; expires=Fri, 12-Sep-2008 05:23:12 GMT
Content-Length: 405
Connection: close
Content-Type: text/html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html>  <head>  <
title></title>  <META http-equiv="Content-Type" content="text/html; charset=utf-
8">  </head>  <body>  Р*СџР*µСЂР*ВµР*№С‚Р*С‘ Р*Р…Р*В° Р*С–Р*В»Р*В°Р*Р†Р*
 <br />  Р*’Р*°С€ Р*В·Р*В°Р*С”Р*В°Р*В· Р*С—РЎР‚Р*С‘Р*ЅСЏС‚ <br />  Р
ЂЎР*°С‚СЊ Р*С—РЎР‚Р*В°Р*в„–РЎРѓ <br />  </body> </html>

После перекодирования из utf-8 в windows-1251 получаем (заголовок ответа опущен):
 
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html>  <head>  <
title></title>  <META http-equiv="Content-Type" content="text/html; charset=utf-
8">  </head>  <body>  РџРµСЂРµР№С‚Рё РЅР° главР
 <br />  Р’аш заказ РїСЂРёРЅСЏС‚ <br />  
ать прайс <br />  </body> </html>

После еще одного перекодирования из utf-8 в windows-1251 получаем:
 
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html>  <head>  <
title></title>  <META http-equiv="Content-Type" content="text/html; charset=utf-
8">  </head>  <body>  Перейти на глав
 <br />  Ваш заказ принят <br />  
ать прайс <br />  </body> </html>
12
13 сентября 2007 года
alekciy
3.0K / / 13.12.2005
На MATE теги браузер глубоко ложит:
Жестко выставляю кодировку - но браузерам "по барабану"
Поэтому копать в строну: быть уверенным, что скрипт РЕАЛЬНО закодирован в UTF-8, просмотреть, что выдает сервер в HTTP headers.
251
13 сентября 2007 года
SkyMаn
1.7K / / 31.07.2007
1) строка реально закодирована на утф-8 идекодируется обратно на любом броузере, если она не на моем сервере (на хостинге ) и если она не у меня на локалхосте.
Выше я выложил пример, так если поставить принудительно броузером кодировку утф-8, то данные строки будут перекодированы в кириллицу нормально. А вот если такое делать у себя (т.е. на другом хосте - то делается еще хуже., так как происходит двойная ковертация утф-8 строки оптяь в утф-8 типа encode(encode(str))
2) у меня в .htaccess'е стоит AddDefaultCharset utf-8 Но тоже, ничего. Ставлю вручную РНР-кодом хидер header("Content-type: text/html; charset=utf-8"); и даже ответ приходит тот, что надо. Но вот только броузеру он ничего не говорит.
Цитата:

[COLOR=#142ce6][SIZE=1][SIZE=1][COLOR=#142ce6]HTTP/1.1 200 OK[/COLOR][/SIZE]
[SIZE=1][COLOR=#142ce6]Date: Thu, 13 Sep 2007 10:04:31 GMT[/COLOR][/SIZE]
[SIZE=1][COLOR=#142ce6]Server: Apache/2.2.4 (Win32) DAV/2 mod_ssl/2.2.4 OpenSSL/0.9.8e mod_autoindex_color PHP/5.2.3[/COLOR][/SIZE]
[SIZE=1][COLOR=#142ce6]X-Powered-By: PHP/5.2.3[/COLOR][/SIZE]
[SIZE=1][COLOR=#142ce6]Content-Length: 405[/COLOR][/SIZE]
[SIZE=1][COLOR=#142ce6]Keep-Alive: timeout=5, max=99[/COLOR][/SIZE]
[SIZE=1][COLOR=#142ce6]Connection: Keep-Alive[/COLOR][/SIZE]
[SIZE=1][COLOR=#142ce6]Content-Type: text/html; charset=utf-8[/COLOR][/SIZE]
[/SIZE][/COLOR]


Вот так. наш контент-тип возвращается, но броузер смотрит на него сквозь пальци. а бы обиделся на броузера, но то же и в опере, и в ФФ.
2Alekciy, как кстати там проблема решилась?

Наверное, проблема скорее всего в серверах. И у меня на локалхочте, и у хостера. Но вот какая?

10
13 сентября 2007 года
Freeman
3.2K / / 06.03.2004
Цитата: Nixus
Странно, у мне все отображает.


У меня тоже отобразилось.

15
13 сентября 2007 года
shaelf
2.7K / / 04.05.2005
Можешь попробывать ещё
 
Код:
header('Content-Type: text/html; charset=utf-8');
251
13 сентября 2007 года
SkyMаn
1.7K / / 31.07.2007
Цитата: shaelf
Можешь попробывать ещё
 
Код:
header('Content-Type: text/html; charset=utf-8');


как я уже говорил, данная конструкция пашет (в хидере ответа приходит данное указание), но браузер молчит по этому поводу

12
13 сентября 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: SkyM@n

2Alekciy, как кстати там проблема решилась?


А хз. Автор не удосужился удостоит тему своим вниманием.

251
13 сентября 2007 года
SkyMаn
1.7K / / 31.07.2007
STATUS: RESOLVED
-----------------------------------------------
Как подсказали уважаемые форумчане, закодировано было два раза. Один раз - мной. Второй - Dreamweaver'ом. Всем спасибо.
Блокнот - рулит!
12
13 сентября 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: SkyM@n

Блокнот - рулит!


Нифига. Рулит PHP Expert Editor.

251
13 сентября 2007 года
SkyMаn
1.7K / / 31.07.2007
Цитата: alekciy
Нифига. Рулит PHP Expert Editor.


+1 Опа, ты тоже его юзаешь? У меня 4.2, а у тебя какая версия?

12
13 сентября 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: SkyM@n
+1 Опа, ты тоже его юзаешь? У меня 4.2, а у тебя какая версия?


Конечно юзаю. Почему бы и нет: бесплатен, удобен, функционален. Имхо, из бесплатных ему для PHP ровни нет. И естественно юзаю самую последную версию. Хотя там пару "фич" выявилось, причем с одной все было ок в более старных версиях, а в 4.2 отожгли )))

15
13 сентября 2007 года
shaelf
2.7K / / 04.05.2005
Ой, народ, давайте или в личку или тему поднимайте (где это обсуждалось). Закрою ведь)
1.8K
14 сентября 2007 года
Ghirik
260 / / 15.03.2007
Цитата:
Наверное, проблема скорее всего в серверах. И у меня на локалхочте, и у хостера. Но вот какая?



Я, конечно, мало что в этом понимаю...:) Но наверное в одном из мест следует убрать принудительную выдачу контента в utf-8. Наверное происходит двойное перекодирование.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог