出,以供各
会员程序在中国的 vc c++则会采用该国的字符编码方式来处理这些字符。 问题又产生了,韩国的 vc c++编写程序输 入本国字符时,vc c++中的英文字符仍然采用 ASCII 编码方式。可以设想,其他国家程序员利用 vc> 评价。 Unicode 编码系统可分为编码方式和实现方式两个层次。 编码方式:Unicode 的编码方式与 ISO 10646 的通用字符集(Universal Character Set,UCS)概 念相对应,目前的用于实用的 Unicode 版本对应于 UCS-2,使用 16 位的编码空间。也就是每个字 符占用 2 个字节。这样理论上一共最多可以表示 216 个字符。基本满足各种语言的使用。实际上目 前版本的 Unicode 尚未填充满这 16 位编码,保留了大量空间作为特殊使用或将来扩展。 实现方式:Unicode 的实现方式不同于编码方式。一个字符的 Unicode 编码是确定的。但是在实际 传输过程中,由于不同
系统平台的
设计不一定一致,以及出于节省空间的目的,对 Unicode 编码的 实现方式有所不同。Unicode 的实现方式称为 Unicode 转换格式(Unicode Translation Format, 简称为 UTF)。如,UTF-8 编码,这是一种变长编码,它将基本 7 位 ASCII 字符仍用 7 位编码表示, 占用一个字节(首位补 0)。而遇到与其他 Unicode 字符混合的情况,将按一定算法转换,每个字 符使用 1-3 个字节编码,并利用首位为 0 或 1 进行识别。 Java 与 C#语言都是采用 Unicode 编码方式,在这两种语言中定义一个字符,在内存中存放的就是这
个字符的两字节 Unicode 码。如下所示: char a='我'; 4.内码的相互转换 (1)vc 中的实现方法 利用 Windows 系统提供的 API:::MultiByteToWideChar 和::WideCharToMultiByte ::MultiByteToWideChar:实现当前码到 Unicode 码的转换; ::WideCharToMultiByte:实现 Unicode 码到当前码的转换; (2)
Java 中的实现方法 String vcString=new String(JavaString.getBytes("UTF-8"),"gb2312"); Java 的编码应该是 UTF-8 (3)C#中的实现方法 四 vc 中的 MutiByte Charater Set 和 Wide Character Set MultiByte Charater Set 方式 这种方式以按字节为单位存放字符,即如果一个字符码为两字节,则在内存中占两字节,字符码 为一字节,就占一字节。例如,字符串“中国 abc”的编码为:中(0xd6、0xd0)、国(0xb9、0xfa)、 a(0x61)、b(0x62)、c(0x63)、(0x00),就存为如下方式 => 内存中存放的 Unicode 码为:25105