资源描述:
《java中编码以及unicode总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Java中编码以及Unicode总结1.基本概念lbit位只能是0或者1lbyte字节一个字节是8位,1byte=8bits计算机表示的基本单位lKB,MB,GB,TB,PB是以1024与byte进行换算l进制用符号进行计数十进制、二进制、八进制(011)、十六进制(0xFF)字符文字和符号的总称l字符集多个字符集合的总称。ASCII字符集、GB2312字符集、GBK字符集、BIG5字符集、GB18003字符集、Unicode字符集lbyte可表示2^8=256个字符的表示00×000000,000010×010000,000120×
2、010000,00101270×7F0111,1111-1280×801000,0000-20xFE1111,1110-10xFF1111,1111l以补码的形式表示的二进制编码。-2的表示,2=0000,0010,反码1111,1101,补码=反码+1=111111101111,1110表示的就是1111,1110-1=1111,1101,取反就是0000,0010也就是2,所以就是-22.字符集和编码2.1.字符(Character)字符(Character)是文字与符号的总称,包括文字、图形符号、数学符号等。2.2.字符集(Ch
3、aracterSet)一组抽象字符的集合就是字符集(CharacterSet)。字符集常常和一种具体的语言文字对应起来,该文字中的所有字符或者大部分常用字符就构成了该文字的字符集,比如英文字符集。一组有共同特征的字符也可以组成字符集,比如繁体汉字字符集、日文汉字字符集。字符集的子集也是字符集。计算机要处理各种字符,就需要将字符和二进制内码对应起来,这种对应关系就是字符编码(Encoding)。制定编码首先要确定字符集,并将字符集内的字符排序,然后和二进制数字对应起来。根据字符集内字符的多少,会确定用几个字节来编码。每种编码都限定了一个
4、明确的字符集合,叫做被编码过的字符集(CodedCharacterSet),这是字符集的另外一个含义。通常所说的字符集大多都是指编码字符集(CodedCharacterSet)。1.1.1.ASCII字符集ASCII(AmericanStandardCodeforInformationInterchange,美国信息互换标准代码)是基于罗马字母表的一套电脑编码系统。由美国国家标准局(ANSI)制定。7位,可以表示2^7=128个字符。在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位(b7)用作奇偶校验位。7
5、位编码的字符集只能支持128个字符,为了表示更多的欧洲常用字符对ASCII进行了扩展,ASCII扩展字符集使用8位(bits)表示一个字符,共256字符。ASCII扩展字符集比ASCII字符集扩充出来的符号包括表格符号、计算符号、希腊字母和特殊的拉丁符号。1.1.2.GB2312字符集GB2312又称为GB2312-80字符集,全称为《信息交换用汉字编码字符集?基本集》,由原中国国家标准总局发布,1981年5月1日实施。在中国大陆和新加坡获广泛使用。GB2312收录简化汉字及一般符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文字母
6、、汉语拼音符号、汉语注音字母,共7445个图形字符。其中包括6763个汉字,其中一级汉字3755个,二级汉字3008个;包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符。GB2312中对所收汉字进行了“分区”处理,每区含有94个汉字/符号。这种表示方式也称为区位码。各区包含的字符如下:01-09区为特殊符号;16-55区为一级汉字,按拼音排序;56-87区为二级汉字,按部首/笔画排序;10-15区及88-94区则未有编码。两个字节中前面的字节为第一字节,后面的字节为第二字节。习惯上称第一字节为“高字
7、节”,而称第二字节为“低字节”。“高位字节”使用了0xA1-0xF7(把01-87区(88-94区未有编码)的区号加上0xA0),“低位字节”使用了0xA1-0xFE(把01-94加上0xA0)。以GB2312字符集的第一个汉字“啊”字为例,它的区号16,位号01,则区位码是1601,在大多数计算机程序中,高字节和低字节分别加0xA0得到程序的汉字处理编码0xB0A1。计算公式是:0xB0=0xA0+16,0xA1=0xA0+1。1.1.3.GBK字符集GBK全名为汉字内码扩展规范,英文名ChineseInternalCodeSpec
8、ification。K即是“扩展”所对应的汉语拼音(KuoZhan11)中“扩”字的声母。GBK来自中国国家标准代码GB13000.1-93。GBK:汉字国标扩展码,基本上采用了原来GB2312-80所有的汉字及码位,并