我想知道是否可以使用Windows打印0xFFFF
以上的字符?
我正在使用Microsoft Visual Studio 2010和Windows XP。字符是16位宽,因此大于0xFFFF
的代码点不能真正适合单个字符。即使我尝试这个:
int codepoint = char.ConvertToUtf32(charHS, charLS);
我会从代理对中获取代码点,但它仍然不适合char。
如果我将较高的多语言平面中的字符粘贴到C#中的字符串中,则字符串的长度为2.如果我尝试打印字符串,那么我将打印两个代理字符,这些字符不是字符,EG,没有代码点,只有一对,而不是“真正的”字符。
不应该有类似32位宽的字符,可以保存高于0xFFFF
的代码点吗?
答案 0 :(得分:5)
不应该有类似32位宽字符的东西,可以保存高于0xFFFF的代码点吗?
也许。但Windows支持在基本多语言平面之外输出字形是基于UTF-16。分成高和低代理对,并传递,好像它是两个字符。