URL中如果有中文的字符,要先对其进行编码才能进行下一步的处理。
- 用替换方法进行编码:
Url encode:对 \n 不转码
perl -pe 's/([^\w\-\.\@])/$1 eq "\n" ? "\n":sprintf("%%%2.2x",ord($1))/eg' keywords.list
- 用替换方法进行解码:
Url Decode:
perl -pe 's/%(..)/pack("c", hex($1))/eg' keywords.list
- 用URI::URL模块进行编码
use URI::URL;
my $str = "http://www.google.com/lxmxn's blog&b=Hello,perl";
my $url = URI::URL->new( $str );
print $url;
- 用URI::Escape模块进行编码
use URI::Escape;
my $str='北极神话';
print uri_escape($str);
#result:%B1%B1%BC%AB%C9%F1%BB%B0