这个编码是什么:“\'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 个字符可以用两种不同的方式之一表示:
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 字符串 "数显卡尺询价"
。
Unicode码点编码为UTF-16,然后每个codeunit在\uXXXX
format.
中转义
我正在阅读一份本应为中文的 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 个字符可以用两种不同的方式之一表示:
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 字符串
"数显卡尺询价"
。Unicode码点编码为UTF-16,然后每个codeunit在
\uXXXX
format. 中转义