use strict; my ($url) = @ARGV;
$url =~ s/([^A-Za-z0-9])/sprintf("%%X", ord($1))/seg;
print "$url";
#$url =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg;
#print "$url";
exit 0;
Urlencode:对 \n 不转码
perl -p -e 's/([^\w\-\.\@])/$1 eq "\n" ? "\n":sprintf("%%%2.2X",ord($1))/eg'
UrlDecode:
perl -p -e 's/%(..)/pack("c", hex($1))/eg'
使用举例:
解码:
echo "����" | perl -p -e 's/%(..)/pack("c", hex($1))/eg'
perl -p -e 's/%(..)/pack("c", hex($1))/eg' file.encoded
编码:
echo "编码" | perl -p -e 's/([^\w\-\.\@])/$1 eq "\n" ? "\n":sprintf("%%%2.2X",ord($1))/eg'
perl -p -e 's/([^\w\-\.\@])/$1 eq "\n" ? "\n":sprintf("%%%2.2X",ord($1))/eg' file.decoded
Perl中的URL编码和解码
最新推荐文章于 2022-03-08 11:41:44 发布