问题标签 [unpack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4522 浏览

perl - 如何在 64 位 Perl 中解压缩(64 位)无符号长整数?

我正在尝试解压缩通过 SysV::IPC 从 C 程序传递到 Perl 脚本的无符号长值。

已知该值是正确的(我做了一个测试,将相同的值发送到两个队列中,一个由 Perl 读取,第二个由 C 应用程序读取),并且所有前面的值都被正确读取(使用q而不是i!使用 64位整数)。

还知道 PHP 在 bug 中有类似的东西(搜索“unsigned long on 64 bit machines”)(似乎类似: Pack / unpack a 64-bit int on 64-bit architecture in PHP

到目前为止测试的参数:

  • ..Q(=某个大于预期的值)
  • ..L (= 0)
  • ..L!(=大值)
  • ..l (= 0)
  • ..l!(=大值)
  • ..lN!( = 0)
  • ..N,..N!( = 0)

use bigint; use bignum;- 没有效果。

细节:

  • sizeof(unsigned long)= 8;
  • Data::Dumper->new([$thatstring])->Useqq(1)->Dump();很多空字节沿着一些有意义的..
  • 字节序='12345678';

解决方案: -x4Q填充四个字节。

0 投票
3 回答
27643 浏览

javascript - node.js 的打包/解包功能

是否有任何模块为 nodejs 提供类似于 python 的 struct 模块的打包/解包功能?我还没有找到任何专门用于节点的东西,我认为 javascript 的实现会慢得多。

谢谢。

0 投票
1 回答
1128 浏览

python - 如何使用 struct.unpack 并将其转换为 Objective-c 中的值

Python 中的代码

struct.unpack("< I",data.read(4))[0] # 解压成 int.

从文件中读取数据,然后使用read,我的问题是我们如何在Objective-c中使用,读取和struct.unpack

我有 NSFileHandle 格式的数据,我可以逐字节读取,所以现在读取不是问题。问题是将我得到的 NSData 转换为(int、short、float、string)。

0 投票
6 回答
3089 浏览

perl - 你能解释一下我从 unpack 中得到的信息吗?

我对 Perl 相对缺乏经验,但我的问题涉及在获取数值位时的解包函数。例如:

这将导致打印 10001100,即十进制的 140。在相反的顺序中,它是十进制的 49。我尝试过的任何其他值似乎都给出了不正确的位。

但是,当我通过 pack 运行 $bits 时,它再次产生 1。我在这里缺少什么吗?

当我认为我的问题已经解决时,我似乎得出了结论。也许我应该简要解释一下我正在尝试做什么。

我需要将一个可能长达 24 位(关键是它可能大于一个字节)的整数值转换为位串。这可以使用@ikegami 建议的解包和打包来完成,但我还需要找到一种方法将该位字符串转换回它的原始整数(不是它的字符串表示形式)。

正如我所提到的,我对 Perl 相对缺乏经验,而且我一直在尝试但没有成功。


我发现似乎是最佳解决方案:

0 投票
1 回答
1101 浏览

ruby - 使用 Ruby 从二进制字符串中解包一点

String::unpack用来从二进制流中解压缩一堆整数和加倍。如何从该比特流中解压缩单个比特?我找不到使用 unpack 解码单个位的特定指令。

0 投票
1 回答
1552 浏览

maven-2 - Maven2解包只包含内部文件

我有 maven unpack 的下一个神器项目

我只需要从 xsd 复制文件和子文件夹,而不是 xsd 文件夹。我如何使用包含/排除来做到这一点?

0 投票
2 回答
7174 浏览

php - PHP - 读取 8 位整数

我有一个所有 8 位整数的二进制文件。我曾尝试使用 php unpack() 函数,但我无法让任何参数适用于 1 字节整数。我试图将数据与一个虚拟字节结合起来,以便我可以使用“n”/“v”参数。我正在使用 Windows 机器来执行此操作。最终,我想要一个函数来返回一个基于 8 位二进制整数字符串的整数数组。我尝试过的代码如下 -

0 投票
3 回答
1792 浏览

python - python结构解压

我正在尝试转换以下 perl 代码:

对于 python,但是 struct.unpack() 中缺少“*”格式修饰符似乎使这不可能。有没有办法在python中做到这一点?

PS perldoc 中 perl 中的“*”修饰符 - 为重复计数提供 * 而不是数字意味着使用剩余的项目,...

因此,虽然 python 有像 perl 这样的数字重复计数,但它似乎缺少 * 重复计数。

0 投票
1 回答
398 浏览

php - 如何找到 pack() -ed 二进制数据的格式并将其解压缩

我在 Mysql 字段中存储了二进制数据,如下所示:0x310x31303030303332. 这是从字符串转换为二进制数据的,我不知道那个字符串,也不知道字符串是如何转换为这个二进制数据的。据我所知pack()unpack()PHP 函数可以帮助我,但我无法将此二进制数据转换回字符串,因为我不知道unpack()使用了什么格式(函数的第二个参数)。如何找到正确的格式来添加unpack('format', $mybinarystring)功能?或者这可以通过另一个函数或方法转换回来?

0 投票
1 回答
2067 浏览

linux - 自定义Tomcat中解压WAR的权限

我似乎在这里找不到这个,但它似乎有点典型。我在 RHEL5 上运行 Tomcat 6

我希望 Tomcat 使用 774 权限而不是默认使用的 754 权限来解压我的 WAR。有没有办法指定这个?我查看了 catalina.policy,但没有看到与此相关的任何内容。