如何处理PDF文件中的9位字符串
How to deal with the 9-bit strings in PDF files?
在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位类型呢?
相关文章:
- Qt 5.11.2 (Clang 8.0 (Apple), 64 位), 找不到 QJSEngine 文件
- 如何使用位字段将数据从二进制文件复制到结构中?
- 将位字符串转储到二进制文件的最佳方法是什么
- 安卓工作室 |CPP 文件错误错误: 位图库中对"AndroidBitmap_unlockPixels"的未定义引用
- 我能确定从文件中读取的 32 字节二进制数据等于 256 位吗?
- 在node-gip binding.gyp文件中,如何根据系统结构(32位、64位)包含不同的库文件
- 如何打开和读取16位.raw文件Vc++(Wince 平台)
- 将Qt qml文件转换为位图图像
- 如何从资源文件(.rc 文件)加载位图?
- 如何从 Linux 交叉编译到 32 位 Windows 可执行文件
- 如何在图像位中设置标志以标记音频文件的结尾
- 自定义二进制文件在 C++ 中触发故障位
- 在 64 位 Linux armv8 计算机上编译 32 位二进制文件时遇到问题
- MFC:重写附属 DLL 中 RC 文件中的位图路径
- C++使用 adodb 在 64 位 Windows 7 中读取 Excel 文件?
- 无法在 64 位 Debian 上运行 32 位二进制文件
- Visual C 32位整数从文件到8位字符到文件 - 程序在某些整数上崩溃
- 如何将大型二进制文件(10000k 位)转换为基数 3 或基数 31?
- collect2:错误:ld 在制作带有代码块的 .so 文件(64 位版本)时返回 1 个退出状态
- 如何保存(和检索)文件的位序列