开发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是要改代码的,有些人扒拉出来的东西,懒得改了,就成了多字节版本的库了。
说到底,还是开发者懒导致的。
任何应用都要做字符集转换,除非你的代码真的不跨平台,不跨语言。
怕麻烦,怕写代码,又想要支持多平台多语言,这样是不可能做到的。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有