| 
 
 
 
 Легенда:
  новое сообщение 
  закрытая нитка 
  новое сообщение 
  в закрытой нитке 
  старое сообщение   | 
Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
Новичкам также крайне полезно ознакомиться с данным документом.
|  |  |  | Некоторые соображения  07.11.03 22:23  Число просмотров: 2842 Автор: Ktirf <Æ Rusakov> Статус: Elderman
 Отредактировано 07.11.03 22:23  Количество правок: 1
 |  
| Мест, указывающих кодировку документа, два: HTTP-заголовок Content-Type, передаваемый сервером, и meta-тег в HTML-документе. Первый обычно фиксируется хостером/веб-мастером, второй - автором странички. Задача браузера - в зависимости от вышеуказанных значений переключиться в нужную кодировку (если, конечно, в браузере включено автоопределение кодировки). Честно говоря, я был уверен, что браузеры предпочитают meta-тег HTTP-заголовку, но похоже, это не так (только что посмотрел на Мозилле и Опере). Резюме состоит в том, чтобы попросить человека, имеющего доступ к конфигам того Апача, который у них там работает, поправить конфиги так, чтобы сервер хотя бы (!) следил за заголовком Accept-Charset, отправляемым браузером на сервер. Ну или как вариант просто не выставлял бы Content-Type в своих HTTP-заголовках, а писал бы его в тег внутри HTML-документов.
 |  | <web building> |  
| странная тема с кодировками  07.11.03 18:38 Автор: spy Статус: Незарегистрированный пользователь
 |  
| на http://www.ruskodnes.sk/ru/ сделали секцию на русском, а она показывает всё центрально европейскими символами. Если смотреть HTML - там прописана "charset=windows-1251" , внутри плавающих фреймов с другой кодировкой вроде нет. 
 Если в IE сохранить страницу как "только HTML", то локально на компе тот же HTML что и при её просмотре в броузере, и страница выходит на русском. А если сохранить страницу как "Web Page, complete", то html файл выглядит немного по другому, и в броузере выходит как charset=windows-1250.
 
 в чём может быть проблема? направте меня в нужном направлении!
 |  
|  | странная тема с кодировками  15.11.03 00:48 Автор: PaulGor Статус: Незарегистрированный пользователь
 Отредактировано 15.11.03 00:48  Количество правок: 1
 |  
| > на http://www.ruskodnes.sk/ru/ сделали секцию на русском, а > она показывает всё центрально европейскими символами.
 
 Сервер, конечно, ни в какую windows-1250 кодировку не перекодирует, a, как здесь уже предполагали, шлёт HTTP Header с указанием кодировки
 "Central European, windows-1250"
 
 Это можно посмотреть на сайте просмотра HTTP Header'ов:
 http://www.delorie.com/web/headers.html
 
 Что ему (хозяину сервера) сказать? Сказать, что бы не заполнялось поле кодировки в HTTP Header'е - тогда META...charset= в самом .html будет срабатывать...
 Вот мой Интернет Провайдер - CompuServe - не заполняет это поле, и поэтому я у себя могу страницы с любой кодировкой создавать...
 |  
|  | может быть веб сервер автоматически перекодирует в windows-1250 ?  07.11.03 19:11 Автор: tdes <jin> Статус: Member
 |  
|  |  
|  |  | может быть веб сервер автоматически перекодирует в windows-1250 ?  07.11.03 21:37 Автор: spy Статус: Незарегистрированный пользователь
 |  
| вообще интересно, когда сервер автоматически перекодирует в другую кодировку, разве HTML не изменится и разве броузер не отвечает за интерпретацию полученого им с сервера HTML на компе "клиента"? 
 может я не прав, но я понимаю так:
 если notepad'ом открыть HTML - там всё по русски, значит броузер имеет текст в нужной кодировке (w1251). так же, в хэдере, там указано, что это именно та кодировка (w1251).и насколько я понимаю, когда броузер уже получил HTML, сервер на интерпретацию этого кода уже не влияет - и всё должно быть путём.... только этого не происходит, и я явно чего-то упускаю или не знаю. поэтому в полной потере :-/
 |  
|  |  |  | Некоторые соображения  07.11.03 22:23 Автор: Ktirf <Æ Rusakov> Статус: Elderman
 Отредактировано 07.11.03 22:23  Количество правок: 1
 |  
| Мест, указывающих кодировку документа, два: HTTP-заголовок Content-Type, передаваемый сервером, и meta-тег в HTML-документе. Первый обычно фиксируется хостером/веб-мастером, второй - автором странички. Задача браузера - в зависимости от вышеуказанных значений переключиться в нужную кодировку (если, конечно, в браузере включено автоопределение кодировки). Честно говоря, я был уверен, что браузеры предпочитают meta-тег HTTP-заголовку, но похоже, это не так (только что посмотрел на Мозилле и Опере). Резюме состоит в том, чтобы попросить человека, имеющего доступ к конфигам того Апача, который у них там работает, поправить конфиги так, чтобы сервер хотя бы (!) следил за заголовком Accept-Charset, отправляемым браузером на сервер. Ну или как вариант просто не выставлял бы Content-Type в своих HTTP-заголовках, а писал бы его в тег внутри HTML-документов.
 |  
|  |  |  |  | Некоторые соображения. Уточнение.  07.11.03 22:47 Автор: Eugene Статус: Незарегистрированный пользователь
 |  
| ничего нового не скажу, только обобщу 
 для решения подобных проблем рекомендую ставить русский апач, если есть такая возможность.
 после указания в конфе или .htaccess
 
 CharsetDefault windows-1251
 CharsetSourceEnc windows-1251
 
 не много браузеров продолжают сопротивляться.
 
 кодировка и правда выдается в контент-тайпе в параметре charset
 
 программно это можно реализовать так
 print $query->header( -charset => $wdwl::default_charset );
 
 между прочим, как раз опере доверяю в этом вопросе меньше нежели остальным.
 |  
|  |  |  |  | а как узнать, какие хедеры посылает броузер и какие получает от сервера ?  07.11.03 22:40 Автор: tdes <jin> Статус: Member
 |  
|  |  
|  |  |  |  |  | Про telnet тут уже более-менее завелся тред, но вообще-то  08.11.03 01:28 Автор: Ktirf <Æ Rusakov> Статус: Elderman
 |  
| Если под рукой есть Мозилла, то можно просто посмотреть Page Info -> Headers. |  
|  |  |  |  |  | inside  07.11.03 23:03 Автор: Eugene Статус: Незарегистрированный пользователь
 |  
| все, что посылает сервер браузеру можешь получить, послав из рядового телнета примитивный get запрос 
 bash-2.05b# telnet bl.com.ua 80
 Trying 195.64.225.21...
 Connected to bl.com.ua.
 Escape character is '^]'.
 GET / HTTP1.1
 
 HTTP/1.1 200 OK
 Date: Fri, 07 Nov 2003 19:57:31 GMT
 Server: Apache/1.3.19 (Unix) mod_perl/1.26 PHP/4.1.2 rus/PL30.4
 Content-Length: 371
 Last-Modified: Mon, 01 Oct 2001 08:24:56 GMT
 ETag: "10f581-173-3bb82858-koi8-r"
 Connection: close
 Content-Type: text/html; charset=koi8-r
 Expires: Thu, 01 Jan 1970 00:00:01 GMT
 
 <!--## (C) 2000, ElVisti Information Center, I.S.P. //ssr@visti.net  ##-->
 <HTML>
 <META HTTP-EQUIV="pragma" CONTENT="no-cahce">
 <TITLE>[ Welcome to Web-hosting place @ElVisti ]</TITLE>
 <LINK rel="stylesheet" href="css" type="text/css" title="Basic Style">
 
 <BODY bgColor=#307080>
 
 <FONT class=td>
 <a href=http://www.visti.net>Visti.net</a> hosting place
 
 
 </BODY></HTML>
 Connection closed by foreign host.
 
 
 
 а для получения всего, что передает браузер - из скрипта распечатай хеш $ENV
 
 #!/usr/bin/perl
 
 use CGI;
 
 print CGI->header;
 
 foreach $i (%ENV) {
 print $i.":".$ENV{$i}."<br>";
 }
 
 
 так, или просто
 
 print_r($_SERVER) в пхп
 |  
|  |  |  |  |  |  | inside  07.11.03 23:38 Автор: tdes <jin> Статус: Member
 |  
| когда я из рядового виндусовского telnet'a соединяюсь на 80 порт, у меня появляется черный экран, и когда я там пишу (при этом не видно что) GET / HTTP1.1я получаю только html код, без хедеров
 |  
|  |  |  |  |  |  |  | inside  08.11.03 00:17 Автор: Eugene Статус: Незарегистрированный пользователь
 |  
| для начала включи в настройках эхо. далее - привожу пример для bugtraq.ru 
 
 bash-2.05b# telnet
 telnet> open bugtraq.ru 80
 Trying 195.209.36.90...
 Connected to bugtraq.ru.
 Escape character is '^]'.
 GET / HTTP1.1
 HTTP/1.1 400 Bad Request
 Date: Fri, 07 Nov 2003 21:09:04 GMT
 Server: Apache/1.3.27 (Unix) mod_perl/1.27
 Connection: close
 Content-Type: text/html; charset=iso-8859-1
 
 
 400, видимо, из-за отсутствия "Host:" в запросе. это сейчас и не важно. заголовки есть.
 
 телнет хоть и не виндоузятний, но вполне рядовой.
 |  
|  |  |  |  |  |  |  |  | по правде говоря, не знаю где в этом telnet'e включать эхо  08.11.03 00:50 Автор: tdes <jin> Статус: Member
 |  
|  |  
|  |  |  |  |  |  |  |  |  | Жмешь Ctrl-] потом набираешь "set ?"  08.11.03 01:00 Автор: amirul <Serge> Статус: The Elderman
 |  
|  |  
|  |  |  |  |  |  |  |  |  |  | не могу ни к одному серваку подключится, за пределами лана  08.11.03 02:09 Автор: tdes <jin> Статус: Member
 |  
| Connection to host lost фаервол может не давать ?
 |  
|  |  |  |  |  |  |  |  |  |  |  | inside  08.11.03 18:28 Автор: Eugene Статус: Незарегистрированный пользователь
 |  
| возможно, или - обращайся к прокси в локальной сети. только тому нужен еще и параметр Host. |  
|  |  | может быть веб сервер автоматически перекодирует в windows-1250 ?  07.11.03 21:16 Автор: spy Статус: Незарегистрированный пользователь
 |  
| может. а как с этим бороться? вэбмастер того сайта тоже в непонятках что происходит.
 |  
|  |  |  | может быть веб сервер автоматически перекодирует в windows-1250 ?  08.11.03 11:45 Автор: archy Статус: Незарегистрированный пользователь
 |  
| > может. а как с этим бороться? > вэбмастер того сайта тоже в непонятках что происходит.
 Добавить в кофиг апача AddDefaultCharset windows-1251
 |  
|  |  |  |  | может быть веб сервер автоматически перекодирует в windows-1250 ?  15.11.03 00:52 Автор: PaulGor Статус: Незарегистрированный пользователь
 |  
| > > может. а как с этим бороться? > > вэбмастер того сайта тоже в непонятках что происходит.
 > Добавить в кофиг апача AddDefaultCharset windows-1251
 
 Ну да, конечно! :) Ты видел адрес? Там на конце .sk стоит, видел?
 Если сделать так, как ты советуешь, то русская страница будет хорошо работать, а вот все остальные, их национальные - перестанут :)
 
 Нет, надо, чтобы вэбмастер сделал так, чтобы поле кодировки -
 Charset - вообще не заполнялось в HTTP Header'e.
 Если бы мой провайдер сделал, как ты советуешь, то я бы не смог ничего, кроме windows-1251 создавать, а у меня ведь и UTF-8 есть:
 http://ourworld.compuserve.com/homepages/PaulGor/utf8euro.htm
 
 |  
 
 
 |  |