日文网站搜索时,关键字在url地址栏里有一个编码的过程,perl怎么获得这个编码后的结果?
比如说在 http://voi.0101.co.jp/voi/index.jsp 这个网站搜索关键字 サマー ,
得到的url是:http://search-voi.0101.co.jp/voi/freeword/?store=&q=%83T%83%7D%81%5B ,
我现在想知道怎么用perl实现把 サマー 转化为 %83T%83%7D%81%5B ?
[b]
---------------------------------------------------------------------------------------------[/b]
Shift_JIS是cp932的子集,就好比中文字符编码gb2312是cp936(gbk)的子集一样。
%83T%83%7D%81%5B
uri_escape的结果,把不合法的URI字符(包含控制字符、大部分标点、大于0x7F的字符)用%XX表示,合法的字符(包含大小写字母、数字、部分标点)可以直接显示。
之前是用Python试的。现在用Perl试了下,结果正常:
Perl code:
#!/usr/bin/perl
use URI::Escape qw(uri_escape);
use Encode qw(encode decode);
$string = 'サマー ';
$uri_cp932 = uri_escape(encode('cp932', decode('utf8', $string)));
$uri_shiftjis = uri_escape(encode('shiftjis', decode('utf8', $string)));
print "$string\t$uri_cp932\t$uri_shiftjis\n";
# 运行结果:
# サマー %83T%83%7D%81%5B%20 %83T%83%7D%81%5B%20
比如说在 http://voi.0101.co.jp/voi/index.jsp 这个网站搜索关键字 サマー ,
得到的url是:http://search-voi.0101.co.jp/voi/freeword/?store=&q=%83T%83%7D%81%5B ,
我现在想知道怎么用perl实现把 サマー 转化为 %83T%83%7D%81%5B ?
[b]
---------------------------------------------------------------------------------------------[/b]
Shift_JIS是cp932的子集,就好比中文字符编码gb2312是cp936(gbk)的子集一样。
%83T%83%7D%81%5B
uri_escape的结果,把不合法的URI字符(包含控制字符、大部分标点、大于0x7F的字符)用%XX表示,合法的字符(包含大小写字母、数字、部分标点)可以直接显示。
之前是用Python试的。现在用Perl试了下,结果正常:
Perl code:
#!/usr/bin/perl
use URI::Escape qw(uri_escape);
use Encode qw(encode decode);
$string = 'サマー ';
$uri_cp932 = uri_escape(encode('cp932', decode('utf8', $string)));
$uri_shiftjis = uri_escape(encode('shiftjis', decode('utf8', $string)));
print "$string\t$uri_cp932\t$uri_shiftjis\n";
# 运行结果:
# サマー %83T%83%7D%81%5B%20 %83T%83%7D%81%5B%20