日文网站搜索时,关键字在url地址栏里有一个编码的过程,perl怎么获得这个编码后的结果?...

日文网站搜索时,关键字在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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值