百科问答小站 logo
百科问答小站 font logo



目前(2020 年)开发WINDOWS程序,用UNICODE还是多字节更实际? 第1页

  

user avatar   bei-ji-85 网友的相关建议: 
      

开发Windows驱动,建议用Unicode,因为Windows内核里的API绝大多数只提供了Unicode的版本;

开发多语言Windows应用,建议用Unicode,否则会有乱码的问题;

开发跨Windows/Linux平台的库或者应用,建议用UTF-8或者Unicode,具体用哪个,要取决于代码的主要面向平台;

开发Windows网络协议类的应用,建议用Unicode或者UTF-8,因为部分网络协议是UTF-8编码的;

开发跨语言的库,建议使用目标语言的字符集,因为有些语言的字符集转换太难搞了;

如果是几十行几百行的C语言作业,那么用什么都无所谓。

多字节版本的库,主要来源有两个:

1. 老的Windows上的代码改过来了,比如跟VC6一个年代的东西,作者没有动力去更新库。因为毕竟Unicode版本要稍微多一点点东西,老代码写的不规范的话,改起来也不是特别快的。
2. 从Linux上扒拉出来的东西,Linux是UTF-8,但UTF-8跟字节流没什么区别,操作起来也都差不多,UTF-8的代码用来操作多字节字符串看上去似乎是差不多的,而UTF-8到Windows的Unicode是要改代码的,有些人扒拉出来的东西,懒得改了,就成了多字节版本的库了。

说到底,还是开发者懒导致的。

任何应用都要做字符集转换,除非你的代码真的不跨平台,不跨语言。

怕麻烦,怕写代码,又想要支持多平台多语言,这样是不可能做到的。


user avatar   ikkiz-70 网友的相关建议: 
      

我觉得应该派解放军去保护我们的自由贸易权力,如果英国人不肯的话就打进白金汉宫,火烧温莎堡




  

相关话题

  程序员做到什么程度才不会被算作 API caller? 
  在内存特定位置填数据后,placement new 是否完全等价与cast? 
  为什么要先 git add 才能 git commit ? 
  C 语言中字符串常量的好处在哪里? 
  只会c如何快速上手STL? 
  软件技术方案中的轻重是什么意思? 
  为什么现在招聘程序员大多要求 Java / C / C++ 技能,而 C# / .NET 不受青睐? 
  为什么simdjson这么快? 
  如何编写能够监听特定程序或全系统所有Http请求的.Net程序? 
  C#填了java哪些坑?java填了C++哪些坑?C++填了C哪些坑? 

前一个讨论
x86架构处理器中不同的寄存器有性能区别吗?
下一个讨论
如何看待广东动车买多一个站收费更便宜的收费政策?





© 2025-03-04 - tinynew.org. All Rights Reserved.
© 2025-03-04 - tinynew.org. 保留所有权利