例如,我有一个字符串"\x80\x81\x82.abc\x00"
,然后它应该转换为十六进制8081822e61626300
。请问如何在Perl中做到这一点?
答案 0 :(得分:3)
你有字符串 "\x80\x81\x82.abc\x00"
或 '\x80\x81\x82.abc\x00'
吗?
选项1:
my $text = "\x80\x81\x82.abc\x00";
$text = unpack "H*", $text;
print $text;
选项2:
my $text = '\x80\x81\x82.abc\x00';
$text =~ s/\\x([a-zA-Z\d]{2})/{chr hex $1}/ge;
$text = unpack "H*", $text;
print $text;
答案 1 :(得分:0)
unpack 'H*'
可能是最佳解决方案:
$ perlsh
eval: unpack "H*", "\x80\x81\x82.abc\x00"
'8081822e61626300'