查询如何解压打包的二进制数据
Posted
技术标签:
【中文标题】查询如何解压打包的二进制数据【英文标题】:Query about how to unpack a packed binary data 【发布时间】:2019-06-13 04:33:59 【问题描述】:我有一个使用以下代码打包的二进制数据: 我的 $binarydata .= pack ("H2" , $no);
这给了我一些不可读格式的二进制数据。
我需要获取这个二进制数据并使用 unpack 转换回 ascii。 任何帮助将不胜感激
【问题讨论】:
【参考方案1】:倒数
my $single_byte_str = pack("H2" , $two_hex_digits);
or
my $single_byte_str = pack("C" , hex($two_hex_digits));
or
my $single_byte_str = chr(hex($two_hex_digits));
是
my $two_hex_digits = unpack("H2" , $single_byte_str);
or
my $two_hex_digits = sprintf("%02x", unpack("C" , $single_byte_str));
or
my $two_hex_digits = sprintf("%02x", ord($single_byte_str));
【讨论】:
我面临的另一个问题是当我使用命令 pack("H2", "0a") 打包值 "a" 时,我得到值 " " 和一个新行。所以当我尝试使用命令 unpack ("H2" , " ") 解压它时,我得到的值是 "20"。知道为什么会这样吗?以上是关于查询如何解压打包的二进制数据的主要内容,如果未能解决你的问题,请参考以下文章