WinAPI宽字符串函数是否支持由多个代码点组成的字符
答
MSDN文章,Surrogates and Supplementary Characters说:
注意:Windows 2000引入了基本的输入,输出和增补字符 简单的排序支持。但是,并不是所有系统的组件都与补充字符兼容。
显然,我们是有点超出Windows 2000的
我的经验是,Windows并在实际上处理代理对,很好。我知道这里和那里存在一些错误,但是自从我解决这个问题以来已经有一段时间了。
简短回答:Windows支持代理对,但有可能在奇怪的角落有一些错误。
+0
作为一个例子,我不认为控制台可以处理代理对。每个字符单元由一个16位值表示,可能被视为UCS-2。另一方面,即使文件系统不是有效的UTF-16,文件系统也会接受任何16位代码单元的字符串(前提是它们不包含任何保留字符),如果将文件名转换为UTF-16会导致麻烦-8并返回。 –
你有错误的术语。代理对包含两个代码**单元**以编码代码点。 – IInspectable