我需要将 %xx 十六进制字符更改为字符。我正在尝试使用此代码,但它不起作用:
#!/usr/bin/perl -w
my $cadena = "%40%61%62";
print $cadena."\n";
$cadena =~ s/%//g;
print "cad: ".$cadena."\n";
my $string =~ s/([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg;
print "traducida: ".$string;
Run Code Online (Sandbox Code Playgroud)
改变
my $string =~ s/([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg;
Run Code Online (Sandbox Code Playgroud)
到
$cadena =~ s/([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg;
Run Code Online (Sandbox Code Playgroud)
这样搜索和替换就可以在 上完成$cadena
。
输出:@ab
40 => @
61 => a
62 => b
Run Code Online (Sandbox Code Playgroud)