0

我想知道是否可以0xFFFF用 Windows 打印上面的字符?

我正在使用 Microsoft Visual Studio 2010 和 Windows XP。一个字符是 16 位宽,因此大于 的代码点0xFFFF不能真正适合单个字符。即使我尝试这个:

int codepoint = char.ConvertToUtf32(charHS, charLS);

我将从代理对中获取代码点,但它仍然不适合字符。

如果我将来自较高多语言平面的字符粘贴到 C# 中的字符串中,则字符串的长度为 2。如果我尝试打印字符串,那么我将打印两个代理字符,它们不是字符,EG,没有代码点他们自己,只是作为一对,而不是“真正的”角色。

不应该有像 32 位宽的字符可以容纳高于 的代码点0xFFFF吗?

4

1 回答 1

5

不应该有像 32 位宽的字符这样可以容纳高于 0xFFFF 的代码点的东西吗?

也许。但是 Windows 对在基本多语言平面之外输出字形的支持基于 UTF-16。拆分为高低代理对并像两个字符一样传递。

于 2012-07-25T14:18:02.807 回答