这个编码是什么:“\'ca\'fd\'cf\'d4\'bf\'a8\'b3\'df\'d1\'af\'bc\'db”?

what is this encoding: "\'ca\'fd\'cf\'d4\'bf\'a8\'b3\'df\'d1\'af\'bc\'db"?

我正在阅读一份本应为中文的 C# 文档,但我却收到如下内容:

"}\htmlrtf {\f6 \htmlrtf0 \'ca\'fd\'cf\'d4\'bf\'a8\'b3\'df\'d1\'af\'bc\'db"

谁能告诉我这个编码是什么,我该如何解码?

RTF is a 7-bit ASCII format (the \htmlrtf 命令是 Microsoft 对 RTF 格式的扩展。

在 RTF 文档中,non-ASCII 个字符可以用两种不同的方式之一表示:

  1. charset-encoded转成8位字节,然后每个字节转义为\'XX格式。

    这就是您在文档中看到的内容。因此,十六进制序列 \'ca\'fd\'cf\'d4\'bf\'a8\'b3\'df\'d1\'af\'bc\'db 是字节序列 0xCA 0xFD 0xCF 0xD4 0xBF 0xA8 0xB3 0xDF 0xD1 0xAF 0xBC 0xDB.

    的转义形式

    要将该字节序列转换为 Unicode 字符串(这是 C# 使用的),您必须使用 RTF 文档中先前指定的代码页来解释字节(通过 RTF 中的 \ansi, \mac, \pc, pca, or \ansicpg command文档的 header).

    例如,当使用代码页 936 或 20936(对于简体中文)进行解释时,上面的字节序列是 Unicode 字符串 "数显卡尺询价"

  2. Unicode码点编码为UTF-16,然后每个codeunit在\uXXXX format.

  3. 中转义