uincode 的认识与使用

mac2022-06-30  71

1. 什么是unicode?    

      我们经常听到:unicode,UTF,UCS 等关键字,由于了解有限,很多时候面对这些术语的时候,概念上不时很清楚。      

      Unicode

      Unicode(统一码、万国码、单一码、标准万国码)是业界的一种标准,它可以使电脑得以呈现世界上数十种文字的系统。Unicode是基于通用字符集(Universal Character Set)的标准来发展,并且同时也以书本的形式(The Unicode Standard,目前第五版由Addison-Wesley Professional出版,ISBN-10: 0321480910)对外发表。大概来说,Unicode编码系统可分为编码方式实现方式两个层次。

 

     UCS (编码方式)

     UCS(Universal Character Set)是Unicode 的编码方式.目前实际应用的Unicode版本对应于UCS-2使用16位的编码空间。也就是每个字符占用2个字节。这样理论上一共最多可以表示216即65536个字符. UCS (编码方式)其实就是确定一个字符的编码.

      UTF(实现方式) 

     Unicode的实现方式不同于编码方式。一个字符的Unicode编码是确定的。但是在实际传输过程中,由于不同系统平台的设计不一定一致,以及出于节省空间的目的,对Unicode编码的实现方式有所不同。Unicode的实现方式称为Unicode转换格式(Unicode Translation Format,简称为UTF)。UTF 是单字节保存的.且向前兼容老的程序.

     可以这么说,系统本地一般适用的是 UCS,而网络上传输的时候为了节省空间,向前兼容,操作方便(没有\0 字符) 使用 UTF.

2. unicode 的适用

   2.1 保存.

   操作系统为了读写方便内部都是按 双字节保存,读取的. 有别于我们经常使用的char 数据类型,wchar_t 就是保存双字节的数据类型. 在windwos 系统下实现了TCHAR 数据类型,其实,它是使用 条件预编译 支持 char  和 wchar_t. 与之类似,STL 也实现了 string  和 wstring .我们也完全可以定义一个TSTRING  同时支持 string  和 wstring .   

    2.2 转换

    很多时候我们需要将网络上接受到的单字节字符(UTF-8)转换成双字节处理.这时候就出现转换问题.下面几个函数对我们会很有用的.

    MultiByteToWideChar(...)   // windows API

    mbstowcs(...)                  // c/c++ 库

                                       

  

 

转载于:https://www.cnblogs.com/zhangyunkui/archive/2009/11/11/1601183.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)