perl中对URL地址进行编码

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

This entry was posted in Perl and tagged , , . Bookmark the permalink.

发表评论

您的电子邮箱不会被公开。 标记为 * 的区域必须填写

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>