查询如何解压打包的二进制数据

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"。知道为什么会这样吗?

以上是关于查询如何解压打包的二进制数据的主要内容,如果未能解决你的问题,请参考以下文章

在 JavaScript 中将字节解释为打包的二进制数据

PHP如何解压Apple APNS反馈数据

使用 PHP 解压大型机压缩十进制 (BCD)

php如何解压十六进制数据

如何在 PHP 中检索打包二进制文件的一部分?

如何将Python打包后的exe还原成.py?