Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > сложный вопрос: perl+xsl+кодировка


Автор: Eva 7.7.2005, 17:07
Есть perl-овый скрипт, который выводит результат xsl-трансформации на экран.

В xsl'е указан метод вывода:
<xsl:output method="html" encoding="windows-1251"/>

В получающемся html-коде есть строка:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

В perl-скрипте для xsl-трансформации используются модули:
my $parser=XML::LibXML->new();
my $xslt=XML::LibXSLT->new();

И при всём этом браузер определяет кодировку неверно, как Western European (ISO) вместо Cyrillic (Windows).

Почему так получается и что надо сделать, чтобы кодировка была правильной? Помогите, пожалуйста!

Автор: sharq 7.7.2005, 19:07
Привиди листинг html-страницы, просто может у тебя браузер автоматом на Western ставит...

Автор: Sadok 8.7.2005, 08:49
Цитата
Почему так получается и что надо сделать, чтобы кодировка была правильной?

Какой браузер? Подозреваю, что не MSIE, т.к. он ориентируется именно на http-equiv="Content-Type".

В скрипте перед выводом результатов сделай

Код
print "Content-Type: text/html; charset=windows-1251\n" # "\n" по вкусу :)


т.е. тебе кодировку надо засунуть в заголовок http-ответа. Можно еще сервре покрутить на этот предмет. Но вставка хедера в скрипт - быстрее.

Автор: Eva 8.7.2005, 09:28
Цитата(Sadok @ 8.7.2005, 08:49)
Цитата
т.е. тебе кодировку надо засунуть в заголовок http-ответа.

Помогло. Спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)