Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Проблема с русским шрифтом HTML-страниц в IE 6 (http://forum.oszone.net/showthread.php?t=31834)

Ant 19-02-2003 23:17 217136

На домашнем компьютере стоит Apache, настроенный на работу с CGI, и установлен Perl, непосредственно и играющий роль CGI. Когда в ответ на посланную форму IE 6 получает HTML-страницу, сгенерированную CGI-программой на Perl, все русские буквы отображаются неправильно, и в параметре «кодировка» стоит «Западноевропейская ISO». Если после загрузки сгенерированной страницы кодировку менять руками непосредственно в IE на «Кириллица», все становится нормально. Пробовал писать в генерируемом HTML-коде параметр lang=”ru” в полях <html> и <font> – не помогает.

Где копать? В IE 6 или в Apache? Может Apache нужно как-то настроить на то, чтобы он «говорил» IE что страница русская?

mar 20-02-2003 02:16 217137

проверь правильность meta:
<meta HTTP-EQUIV="Content-Type" Content="text-html; charset=windows-1251"> (или koi)
со всеми кавычкасм и кодировкой

Ant 20-02-2003 22:41 217138

Цитата:

charset=windows-1251"> (или koi)
К сожалению, на этом все не кончается. Пробовал во всех возможных комбинациях. Не помогает.

Какие еще могут быть соображения?

mar 21-02-2003 00:49 217139

Ant
а нельзя ли показать кусок Perl-ового кода?

Ant 21-02-2003 09:42 217140

Конечно, я приведу код ниже. А пока замечу, что charset менял на все лады и meta вставлял куда только можно, не смотря на то, что теоретически в этом нет смысла. Прога простая, пробная. Получает из HTML-формы значения полей name и description, после чего при нажатии на кнопку «Послать», программа выводит эти значения в генерируемой странице. И все.

Вот код:

#!/usr/bin/perl -w
use CGI qw(:standard);
use strict;

print header;

#Прога просто генерирует HTML-страницу с данными введенными ранее
print "<meta HTTP-EQUIV='Content-Type' Content='text-html; charset=windows-1251'>\n";
print "<html>\n<head>\n<title>Ответ</title>\n";
print "</head>\n<body>";
#Выводим имя взятое в поле name формы:
print "Ваше имя: ", param('name'), "<br>\n";
#Выводим описание взятое в поле name формы:
print "Ваше описание ", param('description'), "<br>\n";
print "<hr>\n";
print "</body>\n</html>\n";



ivank 21-02-2003 20:13 217141

Ant
perldoc CGI::charset

А меты в <head></head> прописывать надо

Ant 21-02-2003 20:36 217142

Цитата:

А меты в <head></head> прописывать надо
Я туда и прописывал. Просто подконец со злости куда попало пихать начал.

Цитата:

perldoc CGI::charset
За это спасибо, сейчас попробую...

Ant 21-02-2003 23:32 217143

Цитата:

perldoc CGI::charset
Мой Active Perl v5.60.613 (и его доки) ничего не знает о модуле CGI::charset. Беглый поиск в Сети, и конкретно через ppm, тоже ничего не дал. Может, я чего-то не понимаю? Если у тебя есть этот модуль, скинь, пожалуйста, на e-mail. Спасибо.

P.S. Кстати, такая же фигня и в Opera. Значит проблема не в броузере.


ivank 22-02-2003 10:05 217144

Ant
Это не модуль, это функция.
Dybvfntkmyj читаем как отправлять заголовки через модуль CGI (раз уж ты его подключаешь).

perchik 25-02-2003 07:59 217145

Ant
httpd.conf
Код:

AddDefaultCharset WINDOWS-1251

ivank 25-02-2003 17:17 217146

perchik
И как это повлияет на результат работы цигейной программы? Мимо, товарищи.

Ant 26-02-2003 18:08 217147

Цитата:

AddDefaultCharset WINDOWS-1251
Окрыленный этим помчался в httpd.conf, но чуда не произошло. Все как и раньше.

Прошу прощения, но я не учел одного очень важного факта. Все html-документы, запрашиваемые через сервер и имеющие русские кодировки отображаются неправильно, вне зависимости от meta. Везде сначало принимается за "Заподноевропейская (ISO)".

Кстати, именно ISO стяла в AddDefaultCharset сначала.

С "перловой" функцией charset еще не пытался ни чего делать. Сейчас попробую...

G r e y 03-03-2003 17:56 217148

Ant
путь_к_перлу/lib/CGI.pm
всё ISO-8859-1 меняешь на windows-1251


Время: 16:20.

Время: 16:20.
© OSzone.net 2001-