在Windows中不使用Unicode有什么缺点?

Jos*_*osh 1 c c++ windows unicode winapi

在Windows上不使用Unicode有什么缺点?

通过Unicode,我的意思WCHAR是广泛的API函数.(CreateWindowW,MessageBoxW等)

不使用这个会遇到什么问题?

Mat*_*lia 6

在处理系统API时,您的代码将无法正确处理当前所选代码页之外的字符1.

典型的问题包括不支持的字符被翻译成问号,无法处理带有特殊字符的文本,特别是名称/路径中带有"奇怪字符"的文件.

此外,几个较新的API仅出现在"宽"版本中.

最后,涉及文本的每个API调用都会稍微慢一点,因为AAPI 的" "版本通常只是围绕" W"API的薄包装器,可以动态地将参数转换为UTF-16 - 因此,您需要一些开销一个"普通"的W电话.


  1. 没有什么能阻止你在你的应用程序中使用窄字符Unicode编码(=> UTF-8),但Windows" A"API 不会说UTF-8,所以你必须转换为UTF-16并调用W版本无论如何.