1 / 4
文档名称:

汉字编码及区位码查询算法.doc

格式:doc   页数:4页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

汉字编码及区位码查询算法.doc

上传人:xxj16588 2016/6/18 文件大小:0 KB

下载得到文件列表

汉字编码及区位码查询算法.doc

文档介绍

文档介绍:汉字编码及区位码查询算法为了使每一个汉字有一个全国统一的代码, 1980 年,我国颁布了第一个汉字编码的国家标准: GB2312-80 《信息交换用汉字编码字符集》基本集, 这个字符集是我国中文信息处理技术的发展基础,也是目前国内所有汉字系统的统一标准。到了后来又公布了国家标准 GB18030-2000 《信息交换用汉字编码字符集基本集的扩充》, 简称 GB18030 。由于国标码是四位十六进制, 为了便于交流, 大家常用的是四位十进制的区位码。所有的国标汉字与符号组成一个 94× 94 的矩阵。在此方阵中, 每一行称为一个"区", 每一列称为一个"位", 因此, 这个方阵实际上组成了一个有 94 个区( 区号分别为 01到 94) 、每个区内有 94 个位( 位号分别为 01 到 94) 的汉字字符集。一个汉字所在的区号和位号简单地组合在一起就构成了该汉字的" 区位码"。在汉字的区位码中, 高两位为区号, 低两位为位号。在区位码中, 01-09 区为 682 个特殊字符, 16-87 区为汉字区, 包含 6763 个汉字。其中 16-55 区为一级汉字(3755 个最常用的汉字,按拼音字母的次序排列), 56-87 区为二级汉字(3008 个汉字,按部首次序排列)。从汉字到区位码的转换。区位码是与汉字一一对应的编码, 用四位数字表示, 前两位从 01到 94 称区码,后两位从 01到 94 称位码。一个汉字的前一半为“ 160 +区码”的字符,后一半为“ 160 + 位码”的字符。例如:“刘”的区位码是 3385 , 其意为区码 33 位码 85, 它是由 160 + 33=193 和 160 + 85=245 的两个字节组成。即 C1F5 ,它就是汉字的 gb2312 编码。下面程序将汉字 gb2312 转为相应的区位码: #include <iostream> #include <iomanip>using namespace std;int main() { // temp[0] 为高字节, temp[1] 为低字节// 当输入单个 ascii 字符时,只存进 temp[0] // 当输入的不是中文或单个 ascii 字符时,程序退出 unsigned char temp[2]; cin >> temp; while(temp[1]) { cout << setw(2) << setfill('0') << temp[0] - 160; //高2位 cout << setw(2) << setfill('0') << temp[1] - 160 << endl; //低2位// 输入下一个字符前,先将 temp[1] 清零 temp[1] = 0; cin >> temp; } return 0;} 字符编码简介 Unicode 是一种字符编码规范。先从 ASCII 说起。 ASCII 是用来表示英文字符的一种编码规范,每个 ASCII 字符占用 1 个字节( 8bits ) 。因此, ASCII 编码可以表示的最大字符数是 256 , 其实英文字符并没有那么多, 一般只用前 128 个( 最高位为 0), 其中包括了控制字符、数字、大小写字母和其他一些符号。而最高位为 1 的另 128 个字符被成为“扩展 ASCII ”, 一般用来存放英文