选择一个值来解码PDF中的十六进制字符串

本文关键字:PDF 解码 字符串 十六进制 一个 选择 | 更新日期: 2023-09-27 18:29:19

当我们有一个十六进制字符串时,如何转换与CharacterMap表中的字符匹配的十六进制字符串。我尝试将十六进制字符串拆分为连续的两个字符代码,然后使用System.Globalization.NumberStyles.HexNumber获得解码值。但有时它会出错,在这些情况下,上述逻辑无法将十六进制字符串转换为四个字符的子字符串并对其进行解码,从而产生良好的结果。

例如:

在这种情况下:十六进制字符串<030402>转换为子串030402,然后对子串进行解码,产生正确的结果。

在这种情况下:十六进制字符串<0000>转换为0000,然后对子字符串进行解码会产生不正确的结果。在这种情况下,将十六进制字符串作为一个整体0000转换为十六进制会产生正确的结果。

有人能帮我吗。提前感谢。

选择一个值来解码PDF中的十六进制字符串

看到一些具有预期和实际结果的特定突破性示例会有所帮助。但听起来您可能没有考虑Unicode的可变编码长度。在UTF-8下,字符前两个字节的范围表示字符的大小:

  • 00-9f:一个字节
  • c2 df:两个字节
  • e0 ef:三个字节
  • f0-f4:四个字节