URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3809
[ Назад ]

Исходное сообщение
"Проблема с русским шрифтом"

Отправлено Hostik , 11-Янв-05 17:49 
Доброго времени суток!
Такая проблема, скриптом добавляю пользователя в БД, то бишь, есть html страничка с формой для заполнения, и при Субмите вызывается скрипт, который должен выводить что пользователь такой-то добавлен и добавлять его в БД, проблема в том, что русские буквы он выводит так -
User %E0%E1%E2 added to Database (должно быть вместо символов - абв), и в БД добавляет такую-же лабуду.
В чем может быть проблема? на другом сервере скрипт работает нормально.

#!/usr/bin/perl

use DBI;

my $user = "user";
my $pass = "pass";
my $database = "DB";
my $host="x.x.x.x";
my $port="5432";

my $dbh=DBI->connect("dbi:Pg:dbname=billing;host=$host;port=$port", $user, $pass, {RaiseError => 1})
    or die $DBI::errstr;
my $result=$dbh->prepare('select * from users');
$result->execute();

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

@pairs = split(/&/, $buffer);

($a, $l) = split("=",$pairs[0]);
($a, $login) = split("=",$pairs[1]);
($a, $passwd) = split("=",$pairs[2]);
($a, $im) = split("=",$pairs[3]);
($a, $fam) = split("=",$pairs[4]);
($a, $otch) = split("=",$pairs[5]);
($a, $otdel) = split("=",$pairs[6]);

print "Content-type: text/html\n\n";

while (my $name = $result->fetchrow_hashref())     {

if ($login eq ($name->{'login'})) {
    print "Error! \n user $login already added to database.";
    $result->finish;
    $dbh->disconnect;
    exit;
                  }                        }

my $ins = "INSERT INTO users VALUES ('$login', '$passwd', '$im', '$fam', '$otch', '$otdel')";
$dbh->do($ins);

print ("user $login successfully added to DataBase");

$result->finish;
$dbh->disconnect;


Содержание

Сообщения в этом обсуждении
"Проблема с русским шрифтом"
Отправлено VL , 11-Янв-05 19:04 
Биллинг пишем? :-)

"Проблема с русским шрифтом"
Отправлено uldus , 11-Янв-05 22:33 
Почитай стандарты, не ASCII символы кодируются в %xx нотации.
Для раскодирования: =~ s/%([0-9a-fA-F]{2})/pack("c",hex($1))/ge;

Но лучше использоавть use CGI.


"Проблема с русским шрифтом"
Отправлено Hostik , 12-Янв-05 08:45 
>Почитай стандарты, не ASCII символы кодируются в %xx нотации.
>Для раскодирования: =~ s/%([0-9a-fA-F]{2})/pack("c",hex($1))/ge;
>
>Но лучше использоавть use CGI.


Спасибо, за ответ!