Показать полную графическую версию : Проблема с русским шрифтом HTML-страниц в IE 6
На домашнем компьютере стоит Apache, настроенный на работу с CGI, и установлен Perl, непосредственно и играющий роль CGI. Когда в ответ на посланную форму IE 6 получает HTML-страницу, сгенерированную CGI-программой на Perl, все русские буквы отображаются неправильно, и в параметре «кодировка» стоит «Западноевропейская ISO». Если после загрузки сгенерированной страницы кодировку менять руками непосредственно в IE на «Кириллица», все становится нормально. Пробовал писать в генерируемом HTML-коде параметр lang=”ru” в полях <html> и <font> – не помогает.
Где копать? В IE 6 или в Apache? Может Apache нужно как-то настроить на то, чтобы он «говорил» IE что страница русская?
проверь правильность meta:
<meta HTTP-EQUIV="Content-Type" Content="text-html; charset=windows-1251"> (или koi)
со всеми кавычкасм и кодировкой
charset=windows-1251"> (или koi)
К сожалению, на этом все не кончается. Пробовал во всех возможных комбинациях. Не помогает.
Какие еще могут быть соображения?
Ant
а нельзя ли показать кусок Perl-ового кода?
Конечно, я приведу код ниже. А пока замечу, что 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";
Ant
perldoc CGI::charset
А меты в <head></head> прописывать надо
А меты в <head></head> прописывать надо
Я туда и прописывал. Просто подконец со злости куда попало пихать начал.
perldoc CGI::charset
За это спасибо, сейчас попробую...
perldoc CGI::charset
Мой Active Perl v5.60.613 (и его доки) ничего не знает о модуле CGI::charset. Беглый поиск в Сети, и конкретно через ppm, тоже ничего не дал. Может, я чего-то не понимаю? Если у тебя есть этот модуль, скинь, пожалуйста, на e-mail. Спасибо.
P.S. Кстати, такая же фигня и в Opera. Значит проблема не в броузере.
Ant
Это не модуль, это функция.
Dybvfntkmyj читаем (http://perldoc.com/perl5.8.0/lib/CGI.html#CREATING-A-STANDARD-HTTP-HEADER-) как отправлять заголовки через модуль CGI (раз уж ты его подключаешь).
Ant
httpd.conf
AddDefaultCharset WINDOWS-1251
perchik
И как это повлияет на результат работы цигейной программы? Мимо, товарищи.
AddDefaultCharset WINDOWS-1251
Окрыленный этим помчался в httpd.conf, но чуда не произошло. Все как и раньше.
Прошу прощения, но я не учел одного очень важного факта. Все html-документы, запрашиваемые через сервер и имеющие русские кодировки отображаются неправильно, вне зависимости от meta. Везде сначало принимается за "Заподноевропейская (ISO)".
Кстати, именно ISO стяла в AddDefaultCharset сначала.
С "перловой" функцией charset еще не пытался ни чего делать. Сейчас попробую...
Ant
путь_к_перлу/lib/CGI.pm
всё ISO-8859-1 меняешь на windows-1251
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.