linux的国家代码,Linux系统下编码(一)
一,Unicode编码
Unicode编码是一个字符的二进制字符集代码,却没有规定二进制代码如何存储。
UTF-8编码(UTF-8是Unicode编码的一种实现方式之一)
(1)特点:是一种变成编码方式
字符编码小结 一,Unicode编码 Unicode编码是一个字符的二进制字符集代码,却没有规定二进制代码如何存储。 UTF-8编码(UTF-8是Unicode编码的一种实现方式之一) (1)特点:是一种变成编码方式(根据不同的字符变化字节长度),可以使用1~4个字节表示一个字符。 (2)编码规则 A. 对于单字节的符号,字节的第一位设为0,后面7位为这个符号的Unicode编码。(对于英文字母UTF-8和ASCII编码是相同的)。 B. 对于n个字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位均设为10.其余的二进制位全部为此字符的Unicode码。 Unicode字符范围(十六进制) UTF-8编码方式(二进制) 0000 0000-0000 007F 0XXX XXXX 0000 0080-0000 07FF 110XXXXX 10XXXXXX 0000 0800-0000 FFFF 1110XXXX 10XXXXXX 10XXXXXX 0001 0000-0010 FFFF 11110XXX 10XXXXXX 10XXXXXX 10XXXXXX 例子:汉字“严”字。 第一步:查找“严”字的Unicode编码()即:4E25。 第二步:将其转换成二进制(0100 1110 0010 0101)。 第三步:确定Unicode所在的范围(根据上表),为范围三。 第四步:转换(如下表) Unicode(二进制) 0100 1110 0010 0101 UTF-8范围(二进制) 1110XXXX 10XXXXXX 10XXXXXX Unicode(二进制调续) (DEL)0100 111000 100101 最后结果 11100100 10111000 10100101 最后结果(十六进制) E4B8A5H 二linux编码,Unicode存储 1.采用(UCS-2)格式直接存储(用两个字节存储)。 2.Little endian指的是小的在前;Big endian指的是大的在前。 例如:4E25H:4E在前;25在后——Little endian 4E25H:25在前;4E在后——Big endian 3.规定:(Unicode存储)——每一个文件最前面分别加入一个编码顺序的字符,个字符的名字叫做“零宽度非换行空格(ZERO WDITH NO-BREAK SPACE)”用FEFF表示(FF>FE)。如果一个文件的开头是FEFF,说明这个文件采用的是大头方式;反之,采用的小头方式 三,ASCII(American Standard Code for Information Interchange)编码同GB2312的关系 一个小于127的字符的意义与原来的相同(ASCII表),两个大于127的字符连接起来表示一个汉字,前面的一个字节(高字节:0xA1~0xF7),后面的一个字节为(低字节:0xA1~0xFE)。 全角:ASCII表中小于127的字符用双字节表示。 半角:ASCII表中小于127的字符用单字节表示。 此时就得到了编码集——GB2312。(7000个汉字)。 四,GBK编码(由于GB2312对于人名、古汉语等罕见用字处理不足的原因) 第一个字节大于127就表示一个汉字的开始。(包括了GB2312的所有内容20000个新的汉字)。扩展了GB18030编码集。 五,双字节字符集(DBCS——Double Byte Character Set) 六,UCS编码 俗称:UNICODE(Universal Multiple-Octet Coded Character Set) 由(ISO——国际标准化组织)提出。 规定:一律用两个字节16位统一表示字符,此时原有的ASCII半角只有低8位没有高8位,(解决:高8位用“0”补充)所以,此时一个汉字是一个字符,两个字节。 “一个汉字算两个字节,一个汉字不再算两个英文字符。” 七,UTF(UCS Transfer Format——Unicode传输格式) UTF-8:代表每次8位传输数据。 UTF-16:代表每次16位传输数据。 八,GB2312编码 GB2312(或GB2312-80)简体中文字符集的中国国家标准,全称《信息交换用汉字编码字符集—基本集》。 1.颁布单位:中国国家标准总局。 2.颁布时间:1981年5月1日。 3.适用地区:大陆、新加坡等。 4.表示方式:分区表示(“分区”处理)。 每个区有94个汉字/字符,(也称“区位码”)。 01~09区——特殊字符; 16~55区——一级汉字,按拼音排序; 56~87区——二级汉字,按部首/笔画排序; 10~15和88~94区未有编码。 5.字节结构 兼容ASCII编码,采用EUC存储方式。 每个汉字用两个字节表示:第一个字节为“高位字节”;第二个字节为“低位字节”。 ○“高位字节”使用了0xA1~0xF7(把01~87区的区号加上0xA0); ○“低位字节”使用了0xA1~0xFE(把01~94区的区号加上0xA0)。 例子: “啊”字的存储方式,以0xB0A1存储【0xB0=0xA0+16;0xA1=0xA0+1】 (编辑:成都站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |