Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows WinAPI宽字符串函数是否支持由多个代码点组成的字符_Windows_Winapi_Unicode_Utf 16 - Fatal编程技术网

Windows WinAPI宽字符串函数是否支持由多个代码点组成的字符

Windows WinAPI宽字符串函数是否支持由多个代码点组成的字符,windows,winapi,unicode,utf-16,Windows,Winapi,Unicode,Utf 16,WinAPI宽字符串函数是否支持由多个代码点组成的字符(所谓的代理项对) 文档中有关于它的内容吗?MSDN的文章说: 注意:Windows 2000引入了对基本输入、输出和输出的支持 补充字符的简单排序。然而,并非所有系统 组件与补充字符兼容 显然,我们已经超越了Windows 2000 我的经验是,Windows实际上可以很好地处理代理项对。我知道到处都有一些bug,但我已经有一段时间没有关注这个问题了 简短回答:Windows支持代理项对,但在一些奇怪的地方可能存在一些错误。您的术语搞错了。

WinAPI宽字符串函数是否支持由多个代码点组成的字符(所谓的代理项对)

文档中有关于它的内容吗?

MSDN的文章说:

注意:Windows 2000引入了对基本输入、输出和输出的支持 补充字符的简单排序。然而,并非所有系统 组件与补充字符兼容

显然,我们已经超越了Windows 2000

我的经验是,Windows实际上可以很好地处理代理项对。我知道到处都有一些bug,但我已经有一段时间没有关注这个问题了


简短回答:Windows支持代理项对,但在一些奇怪的地方可能存在一些错误。

您的术语搞错了。代理项对由两个代码单元组成,用于编码代码点。例如,我认为控制台无法处理代理项对。每个字符单元由单个16位值表示,可能被视为UCS-2。另一方面,文件系统接受任何16位代码单元的字符串(前提是它们不包含任何保留字符),即使它们不是有效的UTF-16,如果将文件名转换为UTF-8并返回,则可能会导致问题。