在我拥有的 RTF
文件中(字符编码 ansicp1251)
出现这些转义的编码字符:
\'a1\'dd
当我在 RTF 编辑器中打开它时,它正确打开为 unicode 符号 U+2265 ≥
。在 RTF 文档中,它将这些转义字符列为十六进制代码。但是,将其列为 hex(A1) + hex(DD)
是不正确的,因为它们代表两个不同的字符,而我只想要 unicode U+2265 ≥< 的一个字符
.
我在 EUC-CN = 中文 Windows = Mac OS 中文简体编码字符集中找到了 A1DD
的匹配项,它可以正确识别 unicode 符号 U+2265。
但是,此编码未在文件中的任何位置列出,并且我不确定我的 RTF 查看器如何知道我不需要 hex(A1) + hex(DD)
而我需要想要这个双字节字符。
我在谷歌上进行了广泛的搜索,但一无所获;有很多其他人对此有报告,但我还没有看到解决方案。我想用 Perl/Python 等编写一个脚本来处理这种转换,而不依赖于可以读/写 RTF 格式的 Windows 工具。
最佳答案
RTF 文件中用于 'xx
字节转义的编码因字体而异。因此,您通常必须对 RTF 进行足够的解析才能找到当前的 \fcharset
定义,然后才能决定如何对其进行解码。这里你可能有 fcharset 134 又名代码页 936 又名 GB。
关于python - 转义双字节/多字节字符的 RTF 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29516412/