Автор Тема: Как правильно указать в заголовке cgi скрипта кодировку формируемой html страницы?  (Прочитано 3690 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн koliama

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 35
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Доброго всем дня.

Пишу скрипт для вывода результатов 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">
http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">Untitled Document


Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
header(-type=>\'text/html; charset=windows-1251\');

perldoc CGI
0 OK, 0:1

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
То же самое, без use CGI:

print "Content-type: text/html; charset=windows-1251\\n\\n";

Оффлайн koliama

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 35
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
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">
http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">рПЮТХЙ


В броузере выводится в кодировке 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.
Пытаюсь добавить этот аргумент....

Оффлайн koliama

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 35
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
и даже более того. сделал так

 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">
http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">рПЮТХЙ


А в броузере - непечатные символы....

Оффлайн koliama

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 35
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
опсс... отвечаю сам себе..
не windows-1252
а windows-1251

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

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28