unicode - 在 Windows 上显示 U+FFFF 上方的 Unicode 字符

标签 unicode windows-xp utf-16 astral-plane

我使用 EVC++ 4 开发的应用程序在 Windows CE 5 上运行,并且应该支持 unicode(据我所知 wchar_t 在 Windows 上使用 UTF-16,所以我正在使用它),所以我希望能够使用“更具异国情调的”角色。特别是对于在 UTF-16 中使用 4 字节而不仅仅是 2 字节的字符。因此,我尝试在文本编辑器中显示此类字符(atm 在我的 Windows XP 台式电脑上,而不是在嵌入式设备上)。

但我还没有做到这一点。作为示例,我选择了 this character 。 就像提到的here “MPH 2B Damase”应该支持这个角色。所以我下载了字体并将其放入Windows\Fonts。我使用十六进制编辑器创建了一个文本文件(只是为了确定),其中包含以下内容:

FFFE D802 DC00

当我用记事本(应该支持 unicode,对吧?)打开它并使用下载的字体时,它不会按预期显示 1 个字符,而是显示 2 个:

˘Ü

我做错了什么? :)

谢谢!

赫尔尼尔斯

编辑: 按照建议翻转 BOM 不起作用。在这种情况下,记事本(以及我尝试过的所有其他编辑器)显示两个方 block 。有趣的是,如果我复制这里的两个方 block (使用 Firefox),我会看到正确的字符:


我也用 Komodo Edit 尝试过,得到了相同的结果。

使用 UTF-8 对记事本也没有帮助。

最佳答案

如果将字节顺序标记反过来会发生什么?

FEFF D802 DC00

(目前字节序列被解释为两个字符 U+02D8 U+00DC,因此希望翻转 BOM 会导致按预期顺序读取字节)

关于unicode - 在 Windows 上显示 U+FFFF 上方的 Unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/782167/

相关文章:

r - 如何在 Windows XP 中自动启动链接到 NppToR R session 而不使用 GUI

mysql - 数据库编码 utf-8 或 utf-16

javascript - 如何在 JavaScript 中将肤色应用于表情符号?

c# - 如何将 unicode 字符串输出为 RTF(使用 C#)

windows-xp - 为什么 "schtasks"不运行我的作业?

C memcpy 错误 - 在 Windows XP 上无法写入内存

html - 我应该从 UTF-8 更改为 UTF-16 以适应我的 HTML 中的中文字符吗?

Java隐式转换int到byte

python - 这是确保 python unicode "string"以 utf-8 编码的最佳方法吗?

php - 删除 unicode 项目符号字符