使用perl -e将十六进制转换为ASCII

w8biq8rn  于 2023-08-06  发布在  Perl
关注(0)|答案(2)|浏览(152)

我想在一行中打印perl -e中十六进制的ASCII等价物。

perl -e "print 0x41;"

字符串
我得到65,但我希望输出为A
我怎么能转换从十六进制到ASCII在短短一行命令。

yyyllmsg

yyyllmsg1#

几种方法:

$ perl -e 'printf "%c\n", 0x41'
A
$ perl -E 'say pack("c", 0x41)'
A
$ perl -E 'say chr(0x41)'
A

字符串

3htmauhk

3htmauhk2#

要将十六进制字符串转换为ASCII,可以使用Perl的pack函数:

$ perl -le 'print pack("H*", "0x41");'

字符串
地点:

-l:自动换行处理
-e:直接在命令行上指定Perl代码
H*:带打包功能的格式说明符

输出量:

A

相关问题