perl转换字符串为16进制

背景

需要打印不可见字符的时候。把其转换为16进制进行输出。

方法

 
printf '\x%*v02x','\x',"abcd";
print "\n";
printf '\x%*v04x','|',"abcd";

输出:

\x61\x62\x63\x64
\x0061|0062|0063|0064

第一个参数,格式化语法。 第二个参数,连接差分的组, 第三个参数,需要处理的字符串。 *v 代表拆分第三个参数为单独的字符。

Put an asterisk * before the v to override the string to use to separate the numbers

02x 代表每个字符用2位的16进制表示

处理好了以后,把各个字符连接起来。