加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux的国家代码,Linux系统下编码(一)

发布时间:2022-10-25 14:32:06 所属栏目: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】

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!