登录  注册 退出 English
鼎恩光彩{www.deanled.cn}
400-886-2386
  1. 首页 > 服务支持 > 二次开发

字符编码(编程参考)

GB2312、GBK、BIG5、UNICODE、HANGUL、SJIS、UHC
作者:小编 上传时间:2017-02-15 浏览量:6727
文件下载列表 :
详细介绍

1、 编码介绍

字符编码就是以二进制的数字来对应字符集的字符,目前用得最 普遍的字符集是 ANSI,对应 ANSI 字符集的二进制编码就称为 ANSI 码, 

DOS 和 Windows 系统都使用了 ANSI 码,但在系统中使用的字 符编码要经过二进制转换,称为系统内码。

汉字内码:ANSI 码是单一字节(8 位二进制数) 的编码集,最多只能表示 256 个字符,不能表示众多的汉字字符,

各个国家和地区 在 ANSI 码的基础上又设计了各种不同的汉字编码集,以能够处理大 数量的汉字字符。

这些编码使用单字节来表示 ANSI 的英文字符 (即 兼容 ANSI 码),使用双字节来表示汉字字符。 由于一个系统中只能 有一种汉字内码,

不能识别其它汉字内码的字符,造成了交流的不便。在微软的主页对部分的编码有比较详细的列表。


2、GB2312

GB2312 码是中华人民共和国国家汉字信息交换用编码,全称《信 息交换用汉字编码字符集--基本集》,由国家标准总局发布,1981  年 5 月 1 日实施,通行于大陆。

新加坡等地也使用此编码。

GB2312 收录简化汉字及符号、字母、日文假名等共 7445 个图形字符,其中汉字占 6763 个。

GB2312 规定<对任意一个图形字符都采 用两个字节表示, 每个字节均采用七位编码表示> ,习惯上称第一个 字节为<高字节> ,第二个字节为<低字节> 。

GB2312-80  包含了大部 分常用的一、二级汉字, 和 9 区的符号。该字符集是几乎所有的中文 系统和国际化的软件都支持的中文字符集,这也是最基本的中文字符 集。

其编码范围是高位0xa1-0xfe,低位也是0xa1-0xfe;汉字从0xb0a1开始,结束于 0xf7fe。

GB2312 将代码表分为 94 个区,对应第一字节(0xa1-0xfe);每 个区 94 个位 (0xa1-0xfe),对应第二字节,两个字节的值分别为区号 值和位号值加 32  (2OH),

因此也称为区位码。 01-09  区为符号、数 字区,16-87 区为汉字区(0xb0-0xf7),10- 15 区、88-94 区是有待进 一步标准化的空白区。

GB2312 将收录的汉字分成两级: 第一级是常 用汉字计 3755 个,置于 16-55 区,按汉语拼音字母/笔形顺序排列; 第二级汉字是次常用汉字计 3008 个,

置于 56-87 区,按部首/笔画顺 序排列。 故而 GB2312 最多能表示 6763 个汉字。


3、GBK

GBK 对 GB2312 进行了扩展。第一字节为 0x81~0xFE,第二字 节分两部分,一是 0x40~0x7E,二是 0x80~0xFE 。其中和 GB2312 相 同的区域,字完全相同。 

扩展部分大概是按部件(部首)和笔顺(笔画) 从 GB13000 中取出再排列入 GBK 中。

在我的点阵字库中定位方法如下。第一个字节减去 0x81 ,则是 正确 的 区位 ,每个区 的大小要根据每个字所 占用的字节 × 190(0x7f-0x40+0xff-0x80)即可。

如果第二个字节小于 0x7f 则减去 0x40, 如果第二个字节大于等于 0x80 则减去 0x41。


4、BIG5

如不去考虑特殊符号,及后来的七个扩充字, TW-BIG5  的排序 方式如下。 

将所有的字分成两大群:常用字区与次常用字区,每一个 字区分别用笔画来排序,同一个笔画的字,依部首来排。

TW-BIG5  每 个字由两个字节组成, 其第一字节编码范围为 0xA1~0xF9,第二字节 编码范围为 0x40~0x7E 与 0xA1~0xFE ,

总计收入 13868 个字 (包括 5401 个常用字、 7652  个次常用字、 7 个扩充字、以及 808 个各式符 号)。

BIG5 码把代码表分为 89 个区,对应第一字节(0xa1-0xf9);每 个区 157 个位 (0x40-0x7e,0xa1-0xfe);总计收入 13868 个字 (包括符 号)。

在我的点阵字库中定位方法如下。第一个字节减去 0xa1 ,则是 正确 的 区位 ,每个区 的大小要根据每个字所 占用的字节 × 157 (0x7f-0x40+0xff-0xa1)即可。

如果第二个字节小于 0x7f 则减去 0x40, 如果第二个字节大于等于 0xa1 则减去 0x62。


5、UNICODE

Unicode  码 :国际 标准组织 于 1984  年 4   月 成立 ISO/IEC JTC1/SC2/WG2 工作组,针对各国文字、 符号进行统一性编码。 

1991 年美国跨国公司成立 Unicode Consortium,并于 1991 年 10 月与 WG2 达成协议,采用同一编码字集。

目前 Unicode 是采用 16 位编码体系,其字符集内容与 ISO10646 的 BMP  (Basic Multilingual Plane ) 相同。 

Unicode 于 1992 年 6 月通过 DIS  (Draf International Standard), 目前 版本 V2.0 于 1996 公布,内容包含符号 6811 个,汉字 20902 个,

韩 文拼音 11172 个,造字区 6400 个,保留 20249 个,共计 65534 个。


6、HANGUL

HANGUL 码:HANGUL 码是韩国文字常用的一种编码, 他的编 码 规 则 与我 们现 行 的 GBK  编码 规 则 是 一样 的,第 一 字 节 为 0x81~0xFE,

第二字节分两部分,一是 0x40~0x7E,二是 0x80~0xFE。其编程方式也跟我国的GBK 方式相同。


7、Shift-JIS(即 SJIS)

Shift-JIS 码:这个编码是在 Windows 系统中比较常用的一个日文 编码。 他也是由两个字节组成 。

第 一个字节 是从 0x81-0x84 , 0x87-0x9F,0xE0-0xEA,0xED-0xEE ,0xFA-0xFC ,第二个字节是从 0x40-0xFC 。

由于第一个字节的区比较混乱,且 0xFA-0xFC 区用的比 较少所 以本软件将 原来 的第一个字节范围 改为了 0x81-0x9F , 0xE0-0xEE,以便于大家编程。

在我的点阵字库中定位方法如下。第一个字节如果小于 0xA0 则 减去 0x81,如果是大于等于 0xE0 小于 0xEF 则减去 0xCE,这个就可 以得到正确的区码,

 每个区的大小要根据每个字所占用的字节×189 (0xFD-0x40) 即可。 如果第二个字节小于 0xFC 则减去 0x40。这个 SJIS 的定位就完成了。


8、UHC

UHC 码:其实 UHC 可能并不是叫做 UHC,这个编码是在以为 韩国用户的要求下增加的, 他具体叫这个做什么编码我也不是很清 楚。

只知道,这个编码跟我国的GB2312 编码是完全一样的。 只是他 用到的字相对较多一点, 我国的预留空间相对来说少一点。

其编程的 方法跟我们的GB2312 编码是完全一样的。






随便看看
18922864126
18922864126
已为您复制好微信号,点击进入微信