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