当前位置: 首页 > 知识库问答 >
问题:

Perl在Java中的解包表示是什么

东郭俊楠
2023-03-14

我有一个Perl脚本,它接受一个值并将其解压缩为一些二进制数据属性。示例如下

my ( $atr1, $atr2, $atr3, $atr4 ) = unpack('a3a16a32a*', $original_value);

我想知道我是否使用Java可能使用ByteBuffer或其他方式实现相同的效果。

在此要点中https://gist.github.com/enrobsop/8403717它适用于整数,但我仍然不清楚如何处理二进制数据。

共有1个答案

扶隐水
2023-03-14

这种说法很奇怪。解包返回四个值,但除前两个值外,其余值均被丢弃。具体来说,它将字符串的前3个字符作为一个字符串返回,接下来的16个字符作为另一个字符串返回。

请注意,Perl字符串与Java字符串有很大不同。Perl字符串是由72位字符组成的字符串,经常用于存储Unicode码位形式的文本和字节。另一方面,Java字符串几乎专门用于以UTF-16字节对的形式存储文本。

没有足够的上下文来知道Perl片段中的字符串是文本还是字节(或其他东西)。如果是字节,Java等价物将使用byte值的数组而不是字符串。如果是文本,核心Java中没有直接的等价物(据我所知)。

>

每个字符都是[0x000000,0x10FFFF]中的一个值,该值大于Java字符所能支持的值。例如,长度(“\N{U 100000}”)1。

 类似资料:
  • 本文向大家介绍Perl中的软件包是什么?,包括了Perl中的软件包是什么?的使用技巧和注意事项,需要的朋友参考一下 Perl中的package语句将当前命名上下文切换到指定的命名空间(符号表)。因此- 包是驻留在其自己的命名空间中的代码的集合。 命名空间是唯一变量名称的命名集合(也称为符号表)。 命名空间可防止程序包之间的变量名冲突。 包使模块的构造成为可能,这些模块在使用时不会破坏模块自身命名空

  • 问题内容: 我想知道这种表示法在Java中做什么。 我不是任何一种Java专家。我希望您能为使用该符号背后的原因提供一些明确的答案。 问题答案: 它表示泛型。是泛型,并且您是从继承的,泛型是专门针对这些类型的。 就像-也是通用的-您可以拥有and 。

  • 本文向大家介绍Perl中的POD是什么?,包括了Perl中的POD是什么?的使用技巧和注意事项,需要的朋友参考一下 Pod是一种易于使用的标记语言,用于编写Perl,Perl程序和Perl模块的文档。有多种翻译器可用于将Pod转换为各种格式,例如纯文本,HTML,手册页等。Pod标记包含三种基本类型的段落- 普通段落-您可以在普通段落中使用格式代码,包括粗体,斜体,代码样式,超链接等。 Verba

  • 问题内容: 我是CSS和SCSS的新手。 在以下代码中, 什么是 &。 手段?和嵌套类一样吗? 问题答案: 该串接的父类,从而导致(而不是如果被省略)。 结果是,与匹配的元素与和类都匹配: 而如果没有,它将匹配具有class 的元素class 的后代:

  • 我在这个Config::INI Perl中找到了一个tilde 我正在处理的文本中没有波浪号。我知道很重要,因为省略、和中的任何或所有内容都会使语法与我的文本不再匹配。 因为我知道我匹配的模式是什么,所以我改变了它,使方括号位于文本表达式周围,因此: 所以在我看来,实际上是说在这里匹配一个方括号,然后期待最后一个括号。 无论如何,我知道在正常的Perl中 不管怎样,我在留档中搜索了语法和正则表达式