Forum Webscript.Ru

Программирование => Perl => Тема начата: koliama от 31 Мая 2004, 11:44:01

Название: Как правильно указать в заголовке cgi скрипта кодировку формируемой html страницы?
Отправлено: koliama от 31 Мая 2004, 11:44:01
Доброго всем дня.

Пишу скрипт для вывода результатов sql запросов в html. Ессно весь текст на выводимой странице должен отображаться в charset=win-1251. По умолчанию же мне выдается страница в charset=iso-8859-1/
Как поправить данную ситуацию?

Вот как я пытался объяснить апачу в какой кодировке я хочу получить страницу.

 print header(-title=>\'Трафик\',
                    -head=>meta{-http_equiv=>\'Content-Type\',
                                        -content=>\'text/html\',
                                        -charset=>\'win-1251\'}),
                         
              start_html ( -style=>{src=>\'/oktopus/main.css\'}),
              end_html();
Вот что получаю в результате

Head:
Title: рПЮТХЙ
Content-Type: text/html; charset=ISO-8859-1


        PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Untitled Document

Название: Как правильно указать в заголовке cgi скрипта кодировку формируемой html страницы?
Отправлено: ondr от 31 Мая 2004, 12:20:27
header(-type=>\'text/html; charset=windows-1251\');

perldoc CGI
Название: Как правильно указать в заголовке cgi скрипта кодировку формируемой html страницы?
Отправлено: Phoinix от 31 Мая 2004, 12:46:12
То же самое, без use CGI:

print "Content-type: text/html; charset=windows-1251\\n\\n";
Название: Как правильно указать в заголовке cgi скрипта кодировку формируемой html страницы?
Отправлено: koliama от 31 Мая 2004, 13:07:18
ondr
Поправил по вашему совету. Получилась следующее

print header(-title=>\'Трафик\',
                     -type=>\'text/html; charset=windows-1252\'),
       start_html (-title=>\'Трафик\',
                          -style=>{src=>\'/oktopus/main.css\'}),
              end_html();
вот результат этих изменений
Title: рПЮТХЙ
Content-Type: text/html; charset=windows-1252


        PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
рПЮТХЙ


В броузере выводится в кодировке iso-8859-1
Кстати по поводу моей конструкции... вырезка из perldoc CGI

 The -encoding argument can be used to specify the character set for
       XHTML.  It defaults to iso-8859-1 if not specified.
Пытаюсь добавить этот аргумент....
Название: Как правильно указать в заголовке cgi скрипта кодировку формируемой html страницы?
Отправлено: koliama от 31 Мая 2004, 13:13:23
и даже более того. сделал так

 print header(-title=>\'Трафик\',
                     -type=>\'text/html; charset=windows-1252\',
                     -encoding=>\'windows-1252\'),
                   
              start_html (-title=>\'Трафик\',
                          -type=>\'text/html, charset=windows-1252\',
                          -encoding=>\'windows-1252\',
                          -style=>{src=>\'/oktopus/main.css\'}),
              end_html();
В консоли выводит
Title: рПЮТХЙ
Encoding: windows-1252
Content-Type: text/html; charset=windows-1252


        PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
рПЮТХЙ


А в броузере - непечатные символы....
Название: Как правильно указать в заголовке cgi скрипта кодировку формируемой html страницы?
Отправлено: koliama от 31 Мая 2004, 13:15:24
опсс... отвечаю сам себе..
не windows-1252
а windows-1251

и бъю себя по голове за невнимательность.
теперь все работает :)
большое спасибо за ответы.