大家看看是编码问题,还是其他原因

大家看看是编码问题,还是其他原因

大家看看是编码问题,还是其他原因
写了一个搜索下载.mp3歌曲的程序,其中要搜索用户输入的歌曲名称,开始在控制台下测试,
然后用Tk写了个界面,其中搜索部分如下[color=red]:(左边是在控制台下,右面在Tk中)[/color]
my $perl=<STDIN>; [color=red]#改为用Entry输入 $perl = $Edit->get(); 并在列表框中删除[/color]
chop $perl; [color=red]#前面的搜索,待加入新搜索结果 $ListBox1->delete(0 ,'end');[/color]
my $place = $perl;
$place =~s/\s+/\+/g;
print "$place\n";
my $browser = LWP::UserAgent->new;
[color=008000]# get request:[/color]
my $url = "http://www.ycul.org/search.php?key=[color=red]$place[/color]&t=0&r=fdu&showonlya=1&s=ftp"; [color=red]# $place 是中文歌名时,控制台下也能下载,但Tk中不行[/color]
my $response = $browser->get( $url );

my ($test, @addr, @dir, @file);
my $point = 0;
my @content = split /\n/ , $response->content;
print "\n";
foreach $test (@content) {
next if ($test=~/10\.64\.130\.18/);
if ($test=~/(\d+\.\d+\.\d+\.\d+)(\/.*\/)(.*$perl\.mp3)/i) {
$addr[$point]=$1; [color=red]#发现在Tk中,当为中文歌名时[/color]
$dir[$point]=$2; [color=red]#这个if语句始终匹配不上[/color]
$file[$point]=$3;
$point++;
}
}

[CCB]10[/CCB]
[color=red]为什么在控制台和有界面两种情况下会有这么大的不同呢?有没有方法解决?
(我在程序开始处已经用了 use encoding 'gb2312'; )[/color]
在Tk中,当搜索歌曲名为中.
在Tk中,当搜索歌曲名为中文时,我查看了一下 $response->content 里的内容,是:

process_ftp_query_str = 210