Forum Webscript.Ru

Программирование => Perl => Тема начата: sd1074 от 23 Марта 2007, 05:20:09

Название: Кодировка html-ок, генерируемых скриптами
Отправлено: sd1074 от 23 Марта 2007, 05:20:09
Столкнулся с такой проблемой. Жил на одном хосте всё было отлично, переехал на другой возникла такая ерунда. CGI-ки генерят страницы в кодировке ISO-8859-1. И хоть ты убейся в ней и всё. Предпринимал шаги:
1) вставил в МЕТА тег в заголовки кодировку windows-1251
2) сделал .htaccess cо строками вида:
AddDefaultCharset WINDOWS-1251
AddCharset WINDOWS-1251 .cp-1251 .win-1251
3) в отчаянии на создавал .htaccess чуть не в каждой директории: в корневой, www , cg-ibin - ни фига не помогло
4) уснул :)
5) Проснулся и, полазив по форумам, решил проверить аткй скриптик:
print "Content-Type: text/html\\n\\n";
print "Привет Мир!";
И он работал! Оказалось, если заголовок генерить строкой
print "Content-Type: text/html\\n\\n";
то кодировка работает нормально, а если делать это как я:
print $query->header;
то нет. Очень хочется знать почему так происходит. Так как у меня там ещё куки ставятся подобной же конструкцией:
print $query->header(-cookie=>$cookie);
то тем более хотелось бы вникнуть в суть проблемы. Если я спрашиваю элементарную весчь то хотя бы отошлите к какой-нить конкретной документации, где указывается в чём отличие $query->header; от "Content-Type: text/html\\n\\n";.
Название: Кодировка html-ок, генерируемых скриптами
Отправлено: arto от 23 Марта 2007, 08:39:45
>perl -MCGI -le "print CGI->new->header (-charset => """windows-1251""")"
Content-Type: text/html; charset=windows-1251

>
Название: Кодировка html-ок, генерируемых скриптами
Отправлено: ctax от 23 Марта 2007, 08:43:10
print $cgi->header(-charset=>"cp1251");
Название: Кодировка html-ок, генерируемых скриптами
Отправлено: sd1074 от 23 Марта 2007, 12:25:52
Спасибо