C++ 在Windows中不使用Unicode的缺点是什么?
在Windows上不使用Unicode的缺点是什么 Unicode是指C++ 在Windows中不使用Unicode的缺点是什么?,c++,c,windows,winapi,unicode,C++,C,Windows,Winapi,Unicode,在Windows上不使用Unicode的缺点是什么 Unicode是指WCHAR和广泛的API函数。(CreateWindowW、MessageBoxW等) 不使用此选项会遇到什么问题?在处理系统APIs1时,您的代码将无法正确处理当前选定代码页之外的字符 典型的问题包括不支持的字符被翻译成问号,无法处理带有特殊字符的文本,尤其是名称/路径中带有“奇怪字符”的文件 此外,一些较新的API仅在“广泛”版本中提供 最后,每个涉及文本的API调用都会稍微慢一些,因为“A”版本的API通常只是围绕“W”
WCHAR
和广泛的API函数。(CreateWindowW、MessageBoxW等)
不使用此选项会遇到什么问题?在处理系统APIs1时,您的代码将无法正确处理当前选定代码页之外的字符 典型的问题包括不支持的字符被翻译成问号,无法处理带有特殊字符的文本,尤其是名称/路径中带有“奇怪字符”的文件 此外,一些较新的API仅在“广泛”版本中提供 最后,每个涉及文本的API调用都会稍微慢一些,因为“
A
”版本的API通常只是围绕“W
”API的薄型包装,可以动态地将参数转换为UTF-16,因此,对于“普通的”W
调用,您会有一些开销
a
”API,因此您必须转换为UTF-16并调用W
版本在处理系统APIs1时,您的代码将无法正确处理当前选定代码页之外的字符 典型的问题包括不支持的字符被翻译成问号,无法处理带有特殊字符的文本,尤其是名称/路径中带有“奇怪字符”的文件 此外,一些较新的API仅在“广泛”版本中提供 最后,每个涉及文本的API调用都会稍微慢一些,因为“
A
”版本的API通常只是围绕“W
”API的薄型包装,可以动态地将参数转换为UTF-16,因此,对于“普通的”W
调用,您会有一些开销
a
”API,因此您必须转换为UTF-16并调用W
版本我相信最初问题的要点是“我应该用”#define(u UNICODE#编译我所有的Windows应用程序吗?#如果我不这样做的话,会有什么负面影响 我最初的回答是:“是的,你应该。我们已经移动了8位ASCII,对于任何现代Windows代码,“_UNICODE”都是合理的默认值。” 对于Windows,我仍然认为这是一个相当好的建议。但我删除了我原来的回复。因为直到我重新阅读自己的链接,我才意识到“UTF-16是一个非常令人悲伤的事态”(正如意大利马特奥公司雄辩地说的那样) 例如: 微软……错误地将“Unicode”和“widechar”用作 “UCS-2”和“UTF-16”的同义词。此外,由于UTF-8不能 设置为窄字符串WinAPI的编码,必须编译它 代码是用UnUnCudio而不是MyBC. Windows C++程序员是 教育Unicode必须使用“widechars”完成。由于 在这种混乱中,他们现在是最困惑的人之一,关于什么是 关于文本的正确做法 我衷心推荐以下三个环节:
我怎么…我相信最初问题的要点是“我应该用”#define(UNICODE#定义)编译我所有的Windows应用程序吗?如果我不这样做,有什么坏处 我最初的回答是:“是的,你应该这样做。我们已经移动了8位ASCII,而对于任何现代Windows代码,'\u UNICODE'是一个合理的默认值。” 对于Windows,我仍然认为这是一个相当好的建议。但是我已经删除了我原来的回复。因为直到我重新阅读我自己的链接,我才意识到“UTF-16是一个非常令人悲伤的事态”(正如意大利马特奥雄辩地指出的那样) 例如: 微软已经。。。错误地将“Unicode”和“widechar”用作 “UCS-2”和“UTF-16”的同义词。此外,由于UTF-8不能 设置为窄字符串WinAPI的编码,必须编译它 使用_UNICODE而不是_MBCS编码。Windows C++程序员 教育Unicode必须使用“widechars”完成。由于 在这种混乱中,他们现在是最困惑的人之一,关于什么是 关于文本的正确做法 我衷心推荐以下三个环节: