在RTF中,\u-3913是什么意思?

问题描述 投票:0回答:2

我正在解析 Outlook 创建的 .MSG 文件中的 RTF 数据。我偶然发现的一件事是:

mso-level-text:\u-3913 ?
mso-level-text:\u-3929 ?

“\u-3913?”表示一个中点字符。但是,我无法识别它的 Unicode 代码。另外,我没有找到“\u-XXXX?”的含义。根本没有字符串。十进制 3913 和十六进制 3913 都不表示中点。我还检查了 middot 的 UTF-8 值。差远了。谷歌搜索解释了“\uXXXX ?”的含义只是,而不是“\u-XXXX?”。

3929代码也一样。

如何从上面得到正确的字符?

unicode outlook rtf
2个回答
3
投票

我也偶然发现了这个问题。正如 Hans Passant 的评论中提到的,您首先需要添加 65536 (0x10000),这会产生 0xF0B7。接下来的事情是,Word 偶尔会在 U+F020..U+F0FF 而不是 U+0020..U+00FF 范围内写入 SYMBOL_CHARSET(非 Unicode)字符。字符集由 RTF 文档中的 charset2 控制字指定。这可能是“charset2 Symbol;”。 Symbol 字体字符编码中的 B7 是一个要点,请参阅 https://en.wikipedia.org/wiki/Symbol_(typeface)

按照这个推理,3929 将产生 -3929 + 65536 = 0xF0A7,并且符号字体中的 0xA7 对应于梅花(扑克牌花色)。


0
投票

一些 RTF 编写器应用程序使用私有区域字符 \uf0b7 来表示中点。参数值为61623。

要解决此问题,您可以将此字符替换为代表中点/项目符号的 \u2022。

© www.soinside.com 2019 - 2024. All rights reserved.