如何处理PDF文件中的9位字符串

How to deal with the 9-bit strings in PDF files?

本文关键字:文件 9位 字符串 PDF 何处理 处理      更新时间:2023-10-16

在PDF文件中,数据类型字符串包含9位字符。虽然十六进制编码的字符串只有8位,但在"正常"字符串中,可以为单个字符表示512个不同的值。这是使用反斜杠后面的字符的八进制表示来实现的。

解析PDF文件时,应该使用什么数据类型来存储此类字符串?这真的很烦人,因为我不能像字节数组那样处理它们,稍后我会在其上应用utf-8之类的编码,但我也不能将其用作已经解码的字符串,因为512个不同的字符不足以存储unicode字符,所以这些9位字符串再次需要以某种方式进行编码:/我只是不知道任何编码从/到9位"字节"的编码/解码。。。

你对此有什么建议/最佳实践吗?

更新

正如R.Martinho Fernandes所指出的:

事件如果理论上可以用3个八进制数字表示512以下的值,则仅表示小于256的值有效。唯一奇怪的是,为什么他们使用3位数的发音表示,而不仅仅是2位数的发音?

我认为答案是,\b和\f将被视为十六进制值。但我不确定。

无论如何:我很高兴adobe的伙计们在制作PDF格式时没有喝醉:)并且:我需要一个答案来接受伙计们!

PDF格式只允许使用8位字节的字符串。八进制转义可以表示9位单元,但第9个可能的位对于表示8位字节是无用的。这是常见的做法,例如C++八进制转义也是如此。所以,不用担心,PDF中没有9位字符串:)

如果您并没有真正迫切需要内存空间,为什么不简单地使用16位类型呢?