字符编码的GB2312
GB2312 也是ANSI编码里的一种,对ANSI编码最初始的ASCII编码进行扩充,为了满足国内在计算机中使用汉字的需要,中国国家标准总局发布了一系列的汉字字符集国家标准编码,统称为GB码,或国标码。其中最有影响的是于1980年发布的《信息交换用汉字编码字符集 基本集》,标准号为GB 2312-1980,因其使用非常普遍,也常被通称为国标码。GB2312编码通行于我国内地;新加坡等地也采用此编码。几乎所有的中文系统和国际化的软件都支持GB 2312。GB 2312是一个简体中文字符集,由6763个常用汉字和682个全角的非汉字字符组成。其中汉字根据使用的频率分为两级。一级汉字3755个,二级汉字3008个。由于字符数量比较大,GB2312采用了二维矩阵编码法对所有字符进行编码。首先构造一个94行94列的方阵,对每一行称为一个“区”,每一列称为一个“位”,然后将所有字符依照下表的规律填写到方阵中。这样所有的字符在方阵中都有一个唯一的位置,这个位置可以用区号、位号合成表示,称为字符的区位码。如第一个汉字“啊”出现在第16区的第1位上,其区位码为1601。因为区位码同字符的位置是完全对应的,因此区位码同字符之间也是一一对应的。这样所有的字符都可通过其区位码转换为数字编码信息。GB2312字符的排列分布情况见表1-4。表1-4 GB2312 字符编码分布表 分区范围 符号类型 第01区 中文标点、数学符号以及一些特殊字符 第02区 各种各样的数学序号 第03区 全角西文字符 第04区 日文平假名 第05区 日文片假名 第06区 希腊字母表 第07区 俄文字母表 第08区 中文拼音字母表 第09区 制表符号 第10-15区 无字符 第16-55区 一级汉字(以拼音字母排序) 第56-87区 二级汉字(以部首笔画排序) 第88-94区 无字符 GB2312字符在计算机中存储是以其区位码为基础的,其中汉字的区码和位码分别占一个存储单元,每个汉字占两个存储单元。由于区码和位码的取值范围都是在1-94之间,这样的范围同西文的存储表示冲突。例如汉字‘珀’在GB2312中的区位码为7174,其两字节表示形式为71,74;而两个西文字符‘GJ’的存储码也是71,74。这种冲突将导致在解释编码时到底表示的是一个汉字还是两个西文字符将无法判断。为避免同西文的存储发生冲突,GB2312字符在进行存储时,通过将原来的每个字节第8bit设置为1同西文加以区别,如果第8bit为0,则表示西文字符,否则表示GB2312中的字符。实际存储时,采用了将区位码的每个字节分别加上A0H(160)的方法转换为存储码,计算机存储规则是此编码的补码,而且是位码在前,区码在后。例如汉字‘啊’的区位码为1601,其存储码为B0A1H,其转换过程为: 区位码 区码转换 位码转换 存储码 1001H 10H+A0H=B0H 01H+A0H=A1H B0A1H GB2312编码用两个字节(8位2进制)表示一个汉字,所以理论上最多可以表示256×256=65536个汉字。但这种编码方式也仅仅在中国行得通,如果您的网页使用的GB2312编码,那么很多外国人在浏览你的网页时就可能无法正常显示,因为其浏览器不支持GB2312编码。当然,中国人在浏览外国网页(比如日文)时,也会出现乱码或无法打开的情况,因为我们的浏览器没有安装日文的编码表。
怎样获取字符对应的GB2312编码
就进入了GB2312简体中文编码表
用Ctrl+F查找需要的字,就能找出相应字符代码了。
字符编码(英语:Character encoding)也称字集码,是把字符集中的字符编码为指定集合中某一对象(例如:比特模式、自然数序列、8位组或者电脉冲),以便文本在计算机中存储和通过通信网络的传递。常见的例子包括将拉丁字母表编码成摩斯电码和ASCII。其中,ASCII将字母、数字和其它符号编号,并用7比特的二进制来表示这个整数。通常会额外使用一个扩充的比特,以便于以1个字节的方式存储。
中国推出几个汉字编码字符集?
推出了6个符集。GB2313字符集,收入汉字6763个,符号715个,总计7478个字符,这是大陆普遍使用的简体字符集。楷体-GB2313、仿宋-GB2313、华文行楷等市面上绝大多数字体支持显示这个字符集,亦是大多数输入法所采用的字符集。市面上绝大多数所谓的繁体字体,其实采用的是GB-2313字符集简体字的编码,用字体显示为繁体字,而不是直接用GBK字符集中繁体字的编码,错误百出。 BIG-5字符集,收入13060个繁体汉字,808个符号,总计13868个字符,目前普遍使用于台湾、香港等地区。台湾教育部标准宋体楷体等港台大多数字体支持这个字符集的显示。 GBK字符集,又称大字符集(GB=GuóBiāo国标,K=扩展),包含以上两种字符集汉字,收入21003个汉字,882个符号,共计21885个字符,包括了中日韩(CJK)统一汉字20902个、扩展A集(CJK Ext-A) 中的汉字52个。Windows 95\98简体中文版就带有这个GBK.txt文件。宋体、隶书、黑体、幼圆、华文中宋、华文细黑、华文楷体、标楷体(DFKai-SB)、Arial Unicode MS、MingLiU、PMingLiU等字体支持显示这个字符集。微软拼音输入法2003、全拼、紫光拼音等输入法,能够录入如镕镕炁夬喆嚞姤赟赟龑昳堃慜靕臹等GBK简繁体汉字。 BIG-5 (繁体中文)与GB-2313 (简体中文),编码不相兼容,字符在不同的操作系统中便产生乱码。文本文字的简体与繁体(文字及编码)之间的转换,可用BabelPad、TextPro或Convertz之类的转码软件来解决。若是程序,Windows XP操作系统,可用Microsoft AppLocale Utility 1.0解决;Windows 2000的操作系统,大概只有用:中文之星、四通利方、南极星、金山快译之类的转码软件方能解决了。 GB18030字符集,包含GBK字符集、CJK Ext-A 全部6582个汉字,共计27533个汉字。宋体-18030、方正楷体(FZKai-Z03)、书同文楷体(MS Song)宋体(ht_cjk+)、香港华康标准宋体(DFSongStd)、华康香港标准楷体、CERG Chinese Font、韩国New Gulim,以及微软Windows Vista操作系统提供的宋黑楷仿宋等字体亦支持这个字符集的显示。Windows 98支持这个字符集,以下的字符集则不支持。手写输入法逍遥笔4.0版支持GB18030字符集及方正超大字符集汉字的录入。 方正超大字符集,包含GB18030字符集、CJK Ext-B中的36862个汉字,共计64395个汉字。宋体-方正超大字符集支持这个字符集的显示。Microsoft Office XP或2003简体中文版就自带有这个字体。Windows 2000的操作系统需安装超大字符集支持包“Surrogate更新”。 ISO/IEC 10646 / Unicode字符集,这是全球可以共享的编码字符集,两者相互兼融,涵盖了世界上主要语文的字符,其中包括简繁体汉字,计有:CJK统一汉字20902个,CJK Ext-A 6582个,Ext-B 42711个,共计70195个汉字。SimSun-ExtB(宋体)、MingLiU-ExtB(细明体)能显示全部Ext-B汉字。至今尚无单独一款字体能够显示全部70195个汉字,但可用海峰五笔、新概念五笔、仓颉输入法世纪版、新版的微软新注音、仓颉输入法 6.0 版(单码功能)等输入法录入。Ext-C还有2万多个汉字。详情请参阅香港中文大学网站、马来西亚仓颉之友网站、福建陈清钰个人网站。 汉字构形数据库2.3版,内含楷书字形60082个、小篆11100个、楚系简帛文字2627个、金文3459个、甲骨文177个、异体字12768组。可以安装该程序,亦可以解压后使用其中的字体文件,对于整理某些古代文献十分有用。
Java语言所使用的字符集是什么?
Java语言所使用的字符集是16位Unicode编码。另外再介绍一些常见的字符集:
1、最早在dos下写pascal的时候,就遇到ASCII字符集,后来还是dos下写c,也是ascii字符集
特点:目前最通用的单字节编码字符集
表示:单字节
最早ascii用7bit表示,总共能表示2^7=128个字符,后来扩展到8bit,就表示2^8=256个字符
2、GB2312又称为GB2312-80字符集,全称为《信息交换用汉字编码字符集·基本集》,由原中国国家标准总局发布,1981年5月1日实施。
特点:当然是能表示99%的中国汉字,还包括拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母等
表示:双字节
3、GBK是汉字编码标准之一,全称《汉字内码扩展规范》,GBK 向下与GB2312编码兼容,向上支持ISO10646.1国际标准。可以认为GBK是在GB2313基础上通过内码扩展出来的一个标准。
特点:完全兼容GB2312标准,支持国际标准ISO/IEC10646-1和国家标准GB13000-1中的全部中日韩汉字,并包含了BIG5编码中的所有汉字
表示:双字节
4、Big5,台湾那边使用比较多。
5、GB 18030,全称是GB18030-2000《信息交换用汉字编码字符集基本集的扩充》,是我国政府于2000年3月17日发布的新的汉字编码国家标准,2001年8月31日后在中国市场上发布的软件必须符合本标准。
特点:就是强大。覆盖中文、日文、朝鲜语和中国少数民族文字。满足中国大陆、香港、台湾、日本和韩国等东亚地区信息交换多文种、大字量、多用途、统一编码格式的要求。并且与Unicode 3.0版本兼容,填补Unicode扩展字符字汇“统一汉字扩展A”的内容。并且与以前的国家字符编码标准(GB2312,GB13000.1)兼容。
表示:单字节、双字节、四字节三种方式
6、Unicode野心更大(当然有一个国际统一标准当然是好事)
特点:Unicode是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
表示:utf-8,utf-16,utf-32
这里可能有点不好理解,举个例子
首先,把unicode理解成对所有字符做了一个统一的编号,比如:“字”这个字符,编号是23383,这个是unicode定义的
但是,在计算机中,如何存储这个编号呢?方式就有很多,存储unicode的方式,就是utf-8,utf-16,utf-32
23383数值的16进制表示:0x5b57
utf-8用3个字节来表示汉字,所以utf-8的表示为:0xE5AD97
utf-16用2个字节来表示汉字,所以utf-16的表示为:0x5b57 刚好和数值是一样的
utf-32用4个字节来表示汉字,所以utf-32的表示为:0x00005b57 和数值是一样的,不过浪费空间
7、再来讲讲utf-8,它是一种变长的字符集
表示:单字节来表示字母,双字节来表示一些希腊字母,三字节来表示汉字,当然也有四字节的
这么做当然会增加表示和识别的难度,不过,可以节省空间。这也是为什么utf-8在网络编码中流行的原因。
美国签证的姓名代码
官方网站说的如此清晰明了:
http://chinese.usembassy-china.org.cn/nivform.html
表格打印出来后,中国申请人还必须在表格的下列几项手填相应的中文信息: 第6项(姓氏)、第7项(名字)、第8项(其它曾用姓氏)、第9项(其它曾用名字)、第15项(家庭住址)、第18项(配偶全名)和第20项(当前工作单位或就读学校的名称)。
表格打印出来后,中国申请人还必须在表格的第6、7项手填其姓氏和名字的标准中文电码。