pack/unpack
理解できていなかったので、色々やってみる(scriptの文字コードはEUC)
まずはpack。
print pack('CC', 97, 0x61), "\n"; print pack('C2', 97, 0x61), "\n"; print pack('B16', '0110000101100001'), "\n"; print pack('H4', 6161), "\n"
実行結果。
aa aa aa aa
次はunpack。
print unpack('B8', 'a'), "\n"; print unpack('H2', 'a'), "\n"; print unpack('C', 'a'), "\n"
実行結果。
01100001 61 97
10進数の2進数変換。ちょっと強引。
perl -e 'print unpack("B8", pack("C", 97)), "\n"'
unicode文字にpackするにはテンプレートにUを指定。
予想通り、UTF8フラグがつくのでフラグを落としてeuc-jpで出力。
print Encode::encode('euc-jp', pack('U', 0x3042)), "\n";