ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:39.93KB ,
资源ID:2794711      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2794711.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(GB2312 字符集.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

GB2312 字符集.docx

1、GB2312 字符集序言 这本手册用表格列出了 GB2312 汉字国家标准字符集的全部字符和编码,以及每个 字符所对应的 Unicode 编码。同时也列出了从 Unicode 到 GB2312 转换表。这些 表格的程式制作也收录在这本手册中。 修改记录: 第 3.05 版,二四年,局部修改。 第 3.00 版,二三年,整理成打印版。 第 2.00 版,一九九九年,整理成网页。 第 1.00 版,一九九七年,初稿完成。阅读记录: 到2006年为止,本书已被阅读 72,409 次。 到2004年为止,本书已被阅读 4,721 次。版权声明: 版权所有 1997 - 2007 杨和荣。 允许转载和使

2、用,但必须保留版权声明GB2312 字符集和编码说明 GB2312 字符集 GB2312 是汉字字符集和编码的代号,中文全称为“信息交换用汉字编码字符集”, 由中华人民共和国国家标准总局发布,一九八一年五月一日实施。GB 是“国标” 二字的汉语拼音缩写。 GB2312 字符集 (character set) 只收录简化字汉字,以及一般常用字母和符号, 主要通行于中国大陆地区和新加坡等地。 GB2312 共收录有 7445 个字符,其中简化汉字 6763 个,字母和符号 682 个。 GB2312 将所收录的字符分为 94 个区,编号为 01 区至 94 区;每个区收录 94 个字符,编号为 0

3、1 位至 94 位。GB2312 的每一个字符都由与其唯一对应的区号 和位号所确定。例如:汉字“啊”,编号为 16 区 01 位。 GB2312 字符集的区位分布表: 区号 字数 字符类别 01 94 一般符号 02 72 顺序号码 03 94 拉丁字母 04 83 日文假名 05 86 Katakana 06 48 希腊字母 07 66 俄文字母 08 63 汉语拼音符号 09 76 图形符号 10-15 备用区 16-55 3755 一级汉字,以拼音为序 56-87 3008 二级汉字,以笔划为序 88-94 备用区这本手册列出了 GB2312 的全部字符和它们的区位号。 GB2312 编

4、码 GB2312 原始编码 (encoding) 是对所收录的每个字符都用两个字节 (byte) 表示。 第一字节为“高字节”,由字符的区号值加上 32 而形成;第二字节为“低字节”, 由字符的位号值加上 32 而形成。例如:汉字“啊”,编号为 16 区 01 位。它的 高字节为 16 + 32 = 48 (0x30),低字节为 01 + 32 = 33 (0x21),合并而成的编 码为 0x3021。 在区位号值上加 32 的原因大慨是为了避开低值字节区间。 由于 GB2312 原始编码与 ASCII 编码的字节有重叠,现在通行的 GB2312 编码是 在原始编码的两个字节上各加 128 修

5、改而形成。例如:汉字“啊”,编号为 16 区 01 位。它的原始编码为 0x3021,通行编码为 0xB0A1。 如果不另加说明,GB2312 常指这种修改过的编码。 这本手册列出了 GB2312 的全部字符和它们的编码。 GB2312 与 Unicode 的关系 GB2312 字符集是 Unicode 字符集的一个子集。这也就是说,GB2312 所收录的每 一个字符都收录在 Unicode 之中。 但是 GB2312 编码和 Unicode 编码确没有什么相同之处。同一个汉字,它的 GB2312 编码和 Unicode 编码确毫不相同。例如:汉字“啊”,它的 GB2312 编码为 0xB0A

6、1,但是它的 Unicode 编码为 0x554A。 这本手册为 GB2312 的每一个字符列出了它所对应的 Unicode 编码和 UTF-8 (Unicode Transformation Format - 8-bit) 编码。 从 GB2312 到 Unicode 转换表制作程式 这本手册里的字符与汉字编码列表由下面的程式所生成。 /* * GB2312Unicde.java * Copyright (c) 1997-2003 by Dr. Herong Yang */import java.io.*;import java.nio.*;import java.nio.charset.*

7、;class GB2312Unicde static OutputStream out = null; static char hexDigit = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F; static int b_out = 201,267,279,293,484,587,625,657,734,782,827, 874,901,980,5590; static int e_out = 216,268,280,294,494,594,632,694,748,794,836, 894,903,994,5594; public static

8、 void main(String args) try out = new FileOutputStream(gb2312.gb); writeCode(); out.close(); catch (IOException e) System.out.println(e.toString(); public static void writeCode() throws IOException boolean reserved = false; String name = null; / GB2312 is not supported by JDK. So I am using GBK. Cha

9、rsetDecoder gbdc = Charset.forName(GBK).newDecoder(); CharsetEncoder uxec = Charset.forName(UTF-16BE).newEncoder(); CharsetEncoder u8ec = Charset.forName(UTF-8).newEncoder(); ByteBuffer gbbb = null; ByteBuffer uxbb = null; ByteBuffer u8bb = null; CharBuffer cb = null; int count = 0; for (int i=1; i=

10、1 & i=10 & i=16 & i=56 & i=88 & i=94) reserved = true; name = Reserved; / writing row title writeln(); writeString(); writeNumber(i); writeString( Row: +name); writeln(); writeString(); writeln(); if (!reserved) writeln(); writeHeader(); / looping through all characters in one row for (int j=1; j=94

11、; j+) byte hi = (byte)(0xA0 + i); byte lo = (byte)(0xA0 + j); if (validGB(i,j) / getting GB, UTF-16BE, UTF-8 codes gbbb = ByteBuffer.wrap(new bytehi,lo); try cb = gbdc.decode(gbbb); uxbb = uxec.encode(cb); cb.rewind(); u8bb = u8ec.encode(cb); catch (CharacterCodingException e) cb = null; uxbb = null

12、; u8bb = null; else cb = null; uxbb = null; u8bb = null; writeNumber(i); writeNumber(j); writeString( ); if (cb!=null) writeByte(hi); writeByte(lo); writeString( ); writeHex(hi); writeHex(lo); count+; else writeGBSpace(); writeString( null); writeString( ); writeByteBuffer(uxbb,2); writeString( ); w

13、riteByteBuffer(u8bb,3); if (j%2 = 0) writeln(); else writeString( ); writeFooter(); System.out.println(Number of GB characters worte: +count); public static void writeln() throws IOException out.write(0x0D); out.write(0x0A); public static void writeByte(byte b) throws IOException out.write(b & 0xFF); public static void writeByteBuffer(ByteBuffer b, int l) throws IOException int i = 0; if (b=null) writeString(null); i = 2; else for (i=0; ib.limit(); i+) writeHex(b.get(i); for (int j=i; jl; j+) writeString( );

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1