当前位置:主页   - 电脑 - 程序设计 - C/C++
UCS-2与UTF8之间的选择(1)--序
来源:网络   作者:九天雁翎   更新时间:2011-07-17
收藏此页】    【字号    】    【打印】    【关闭

  首先纠正几个名词

  作为常常在windows下开发的人员,一般将windows下的Unicode实现直接称为Unicode,(比如我在前面就一直是这样做的),而把其他的Unicode实现称为更加具体的名称,比如UTF-8,UTF-16等,但是既然这里要讨论各种Unicode的实现,所以,还是得好好的区分一下,这里,将windows下的Unicode实现正名为UTF-16,但是遗憾的是,我发现Windows下的字符串处理函数实际仅仅是支持UCS-2的(在Window XP下测试结果),所以从编程的角度来讲,我们还是只能使用UCS-2,见文章《确定Windows XP到底是UCS-2的还是UTF-16的》,所以,这里都不混淆的情况下都以UCS-2代替。

  以一个字符对应一个Unicode编码,并且要表达全部的Unicode编码,连普通的两个字节的wchar_t都不够,所以,现在有了新的UTF-32,gcc中wchar_t也默认已经是32位的了,顺应的就是这种潮流,毕竟,在现在,硬盘内存都当白菜卖了,相对而言,不在乎那么点空间,最最重要的是编程方便,还有速度。

  关于此部分内容参看《UTF-16/UCS-2》。

  关于Unicode的编码范围的内容参看《Mapping of Unicode character planes》。

  名字缩写注释:

  通用字符集 (Universal Character Set, UCS)

  统一码转换格式(Unicode Transformation Format,UTF)

  其次,讲讲Unicode

  假如初次接触,那么要了解清楚Unicode还不是那么简单的事情,这是实话。当年语言编码混乱的时代,一种语言的软件不能正常的在另外语言的操作系统上显示,编多语言的程序是件非常痛苦的事情,编写一个可以在不同操作系统上都显示正确字符的软件那是高难度的事情。当时呼吁统一编码的呼声很高,原以为Unicode一出,将来的程序员将是无比幸福,甚至都不会了解什么叫编码,什么叫代码页(Codepage),因为已经不用考虑了。

编缉推荐阅读以下文章

  • UCS-2与UTF8之间的选择(4)--linux中各编码字符串的C/C++输出支持及方式比较
  • UCS-2与UTF8之间的选择(3)--windows与linux中各编码字符串的C/C++输出支持及方式比较
  • UCS-2与UTF8之间的选择(2)--Unicode组织提供的C/C++的Unicode编码转换函数
其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明