百科问答小站 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 网友的相关建议: 
      

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




  

相关话题

  程序员如何应对诸如「给我弄个网站吧」的请求? 
  哪些语言特性,有助于开发大型系统? 
  网游通信协议如何防止封包篡改? 
  优秀的程序员产出可以是普通程序员的 10 倍,那招聘一个软件开发团队,还不如自己成为一个优秀的程序员? 
  c中struct 为什么可以在数据结构这样用? 
  为什么 C++ std::map::operator[] 不提供 const 版本? 
  请求参数用string好还是数字好? 
  为什么好多人说C++代码丑? 
  求十亿内所有质数的和,怎么做最快? 
  如何在在asp项目中正常调用非托管c++dll? 

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





© 2025-01-31 - tinynew.org. All Rights Reserved.
© 2025-01-31 - tinynew.org. 保留所有权利