准备关键词测试时经常需要进行UrlEncode和UrlDecode,以下是2个常用的单行Perl脚本(正则表达式):输入为日志或关键词列表
Urlencode:对 \n 不转码
perl -p -e 's/([^\w\-\.\@])/$1 eq "\n" ? "\n":sprintf("%%%2.2x",ord($1))/eg' keywords.list
UrlDecode:
perl -p -e 's/%(..)/pack("c", hex($1))/eg' query.log作者:车东 发表于:2004-03-08 15:03 最后更新于:2010-06-21 12:06
版权声明:可以转载,转载时请务必以超链接形式标明文章 Oneliner's url encode (urlencode) and url decode (urldecode) in Perl 的原始出处和作者信息及本版权声明。
http://www.chedong.com/blog/archives/000224.html
Comments
使用iconv做编码转换:
iconv -f -t input_file
-f: from encoding
-t: to encoding
比如:
iconv -f utf-8 -t gb2312 wget.output
用来做UTF-8输出文件的编码转换挺方便的。这样在Linux上也能直接查看UTF-8的输出了。
由: Che Dong 发表于 2004年09月14日 下午03时06分
在perl代码中需要将字符串转换为编码后的URL可以这么做:
use URI::URL;
my $str = "http://www.google.com/?a=a b c&b=c d e";
my $url = URI::URL->new( $str );
print $url;
由: 我爱小甜饼 发表于 2006年05月24日 下午04时39分