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

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




  

相关话题

  c++初学者有必要深挖这样的问题吗? 
  unique_ptr 的底层实现是什么样的? 
  git是Linus一个人开发出来的吗? 
  怎样理解C语言是才是代码的精髓,可以让你领略不一样的世界这句话?(其实就是怎么翻译成人话-_-# 
  现在快2022年了,c++为什么还要实现(.cpp)和声明(.h)分开? 
  如何反驳「不应该强制用户更新」这一言论? 
  为何Windows能兼容大部分20年前的应用,而Android/iOS连几年前的应用都不一定兼容? 
  计算机专业必读哪些经典书籍? 
  如果想让中国程序员水平高于美国程序员水平,中国互联网公司应做出哪些变化? 
  c#多播或event监听太多后gc和时间都会爆炸,那么比起List<Action>存在的意义是什么? 

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





© 2024-11-09 - tinynew.org. All Rights Reserved.
© 2024-11-09 - tinynew.org. 保留所有权利