我正在处理由其他人在未知平台上制作的 RTF 文件,并且所有内容都被正确解释,除了一些字符,无论我在 openoffice 中打开它们的任何字符集。这是经过解释的纯文本:
“Même taille que la Terre,même masse,même âgec Vénus a souvent été qualifiée de sœur de la Terre。”
这是原始的ANSI段落:
"M\u234\'3fme taille que la Terre, m\u234\'3fme masse, m\u234\'3fme \u226\'3fge\uc2 \u61825\'ff\'81\uc1 c V\u233\'3fnus a souvent \u233\'3ft\u233\'3f qualifi\u233\'3fe de s\u339\'3fur de la Terre。”
放大:
“âgec Vénus”变为“\u226\'3fge\uc2 \u61825\'ff\'81\uc1 c V\u233\'3fnus”
最后,我们想出什么:
"\uc2 \u61825\'ff\'81\uc1 c"
这里是说我们在 4 字节\uc2
和\uc1
2 字节 Unicode 编码之间来回切换。
\u61825
是一个未知的 Unicode 字符。事实上,根据 RTF 规范,任何大于 2^15 的 UTF 字符都应该写成否定形式;带有 ANSI 字符的否定形式应该使记事本可以看到“-”(减号)符号,对吗?所以在这里我已经有了一些我不明白的东西,首先制作 rtf 文件的人使用的 RTF 编写器是如何做到的。也许我错过了规范中的某些内容,具体版本,字符集,我不知道。如果按原样,61825 将对应于 F181,它位于 Unicode 表的私有区域中。
然后,\'ff\'81
将使用整个“特定字符”组(其结构通常为\uN\'XX
)的 ANSI 等效字段来编码 4 字节长的内容。又在这里,我找不到:
引用的代码页(Windows-1252、ISO-8859-1、其他?)是什么(就像文件中出现
\uN\'XX
序列的所有其他位置一样,XX
始终3F
是“?”的 Windows-1252 代码,所以它没有给我太多信息)(看起来
\'FF
像转义序列中的一些控制字符!)代表什么,然后为什么\'81
...实际上,\u61825
到十六进制的翻译是F181
,而不是FF81
...我在这里迷路了!
最后,翻译文本(法语)让我们期待的是“:”(分号):“与地球相同大小,相同质量,相同年龄:金星经常被称为地球的姐妹”。这是有道理的。但是哪个 rtf 的作者能想象出如此复杂的分号代码呢?
所以再一次,经过1小时的搜索,我向你们提出问题:有人认识这个吗,可以告诉我使用了什么控制字编码,61825是否有大端/小端/2的补码混乱,与 相同\'ff\'81
,它将组装为FF81
而不是F181
,它本身并不意味着什么......这里我的问题只是想知道是否有办法从奇怪的 RTF 编码中找到完整的原始文本!