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

时间:2013-06-27 12:47:02

标签: c++ pdf encoding

在PDF文件中,数据类型字符串具有9位字符。虽然十六进制编码的字符串仅为8位,但在“普通”字符串中,可以为单个字符表示512个不同的不同值。这是使用反斜杠后的字符的八进制表示来实现的。

解析PDF文件时,我应该使用哪种数据类型来存储这些字符串?它真的很烦人,因为我无法处理它们就像一个字节数组,我后来应用了像utf-8这样的编码,但我也不能将它用作已解码的字符串,因为512个不同的字符不足以存储unicode字符,所以这些9位字符串再次需要以某种方式进行编码:/我只是不知道任何编码/解码/从9位“字节”编码...

您对此有任何提示/最佳做法吗?

更新

正如R.Martinho Fernandes所指出的那样:

事件如果它理论上可以用3个八进制数字表示高达512的值,它只能表示小于256的值。唯一奇怪的是它为什么使用3位八进制表示而不只是一个2位十六进制表示?

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

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

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

如果您没有真正按下内存空间,为什么不简单地使用16位类型?