我使用 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/