[Perl] Cчитывать данные из формы cgi какозябры

KHyT

Знаток
Регистрация
26 Апр 2008
Сообщения
328
Реакции
25
вот форма
Код:
<html><head>
<TITLE><H4>Моя Первая Форма</H4></TITLE>
<head>
<body>
<FORM NAME = "form_example" ACTION = "/cgi-bin/form1.cgi" METHOD = "POST">
Имя:     <INPUT TYPE = "TEXT" NAME = "fname"><BR>
Фамилия: <INPUT TYPE = "TEXT" NAME = "lname"><BR>
<BR>
Ваш любимый цвет: <BR>
<INPUT TYPE = "RADIO" NAME="color" VALUE = "red">Красный<BR>
<INPUT TYPE = "RADIO" NAME="color" VALUE = "bue">Синий<BR>
<INPUT TYPE = "RADIO" NAME="color" VALUE = "green">Зеленый<BR>
<BR>
<INPUT TYPE = "CHECKBOX" NAME="sports" VALUE="football">Футбол<BR>
<INPUT TYPE = "CHECKBOX" NAME="sports" VALUE="baseball">Бейсбол<BR>
<INPUT TYPE = "CHECKBOX" NAME="sports" VALUE="basketbol">Баскетболл<BR>
<BR>
<INPUT TYPE = "SUBMIT" NAME="doit" VALUE=" Отправить информацию ">
</FORM>
</BODY>
</HTML>
</body></html>

с помощью этого кода пытаюсь считать данные формы

Код:
#!/usr/bin/perl
use strict;
use CGI qw(:standard);
use CGI::Carp qw(fatalsToBrowser);


my $first_name = param('fname');
my $last_name = param('lname');

my $fav_color = param('color');

my @fav_sports = param('sports');
my $sport_count = @fav_sports;
my $sport_text;
print header;
print start_html ('Моя Первая Форма');
print qq( Здравствуйте, $first_name $last_name<P>);
print qq(Ваш любимый цвет: $fav_color);
if ($sport_count > 1) {
    $sport_text = "Ваши любимые виды спорта";
}
else {
    $sport_text = "Ваш любимый вид спорта";
}
foreach(@fav_sports) {
    print qq(-$_<BR>);
}
print end_html();

то вывод

Content-Type: text/html; charset=ISO-8859-1 .............................. как убрать эту строку
и почему все остальное какозябры я сохранял и в utf8 и сp1251 все ровно какозябры
 
По дефолту кодировка ответа сервера ISO-8859-1, чтобы изменить:
PHP:
print header("-charset" => "utf-8");
Также читай кэмелбук (Advanced perl programming) и
PHP:
perldoc Encode
по использованию UTF8 в перле, есть свои нюансы.
 
  • Нравится
Реакции: KHyT
Назад
Сверху