CGIデコードでつまづいています。
PerlCGIのデコードでつまづいています。jcode.plで$valueの値を「%E3%81%BF%E3%81%AE%E3%82%8A%E5%8F%B0」から「みのり台」の日本語に変換しようとしたのですが「%E3%81%BF%E3%81%AE%E3%82%8A%E5%8F%B0」が返されてうまくいきません。申し訳ありませんが知恵を貸して頂けないでしょうか、よろしくお願い致します。
#!/usr/bin/perl
require './jcode.pl';
#デコードするためのプログラム
# プラウザからのデータ取込み
#if ($ENV{'REQUEST_METHOD'} eq "POST") {
# read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
#}
#else {
$buffer = $ENV{'QUERY_STRING'};
#}
# プラウザからのデータ変換
#$i = 0; #※2
@pairs = split(/&/,$buffer);
foreach $pair (@pairs) {
#1行毎に$name,$valueを取り出す
($name, $value) = split(/=/, $pair);
# 変換演算子 tr + を スペースに置き換え
# $value =~ tr/+/ /;
# 変換演算子 s/// 単語の構成文字にマッチ
# $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
# " を " に変換
# $value =~ s/"/"/g;
#\n を "" に変換
# $value =~ s/\n//g;
print qq(
<tr><td>やった</td></tr>
) , "\n";
# jcodeでデコードがうまく出来ませんでした。
# 日本語に変換(デコード処理部分)
&jcode'convert(*value,'sjis');
&jcode'convert(*$name,'sjis');
# $FORM{$name} = $value; #※1
# @num[$i]=$value; #※2
# $i=$i++; #※2
# $str = decode('shiftjis', $value);
# $value = encode('shiftjis', $str);
}
@varuee = split(/&*q=/,$ENV{'QUERY_STRING'});
print qq(
<HTML>
<HEAD>
<TITLE>画像の検索結果</TITLE>
</HEAD>
<BODY bgcolor="#FFFFFF">
<H2 align="center">画像データベースの検索結果</H2>
<!--画像の検索結果を2~3件ためしに表示-->
<BR>
<hr>
<CENTER>
<table>
);
print qq(
<tr><td>$value</td></tr>
) , "\n";
exit;