例如,我有以下脚本
use utf8;
use strict;
use warnings;
use feature 'say';
use Encode qw(decode encode);
my $s = "中";
my $octets = encode("UTF-8", $s);
say $octets;
$octets = encode("cp936", $s);
say $octets;
它在 Windows CMD(在 CP936 中设置)中输出如下:
涓?
中
但是我想输出的是十六进制形式的原始字节,例如,像这样
E4B8AD # 中 encoded in utf8
D6D0 # 中 encoded in GBK
这个原始字节输出 perl 中的哪个函数?
sprintf '%v02X', $octets # E4.B8.AD
unpack 'H*', $octets # e4b8ad
uc unpack 'H*', $octets # E4B8AD
join ' ', map sprintf('%02X', $_), unpack 'C*', $octets # E4 B8 AD
join ' ', map sprintf('%02X', ord($_)), split //, $octets # E4 B8 AD