您的位置:时时app平台注册网站 > 时时app平台注册网站 > 字符编码,字符编码表【时时app平台注册网站】

字符编码,字符编码表【时时app平台注册网站】

2019-09-18 01:24

1. ASCII码

字符编码,字符编码表

1. ASCII码

1> ASCII码不满含大家输入法中的"特殊字符"和"数学字符"等,他们都属于扩大ASCII 字符

2. GBK编码

GBK实际上是ASCII的华语增加编码,其准则是:

1> 要是第四个字节的胜出127(0x7F, 0111 1111,即最高位为0),则意味从那个字节发轫的2个字节是意味叁当中夏族民共和国字,不然,则是三个斯洛伐克共和国(The Slovak Republic)语ASCII码

2> GBK是兼容ASCII的

3> GBK的汉字编码占用2个字节

4> 那类编码格局统称为做 “DBCS“(Double Byte Charecter Set 双字节字符集)

 

3. Unicode编码

Unicode是为着化解ASCII的各种扩大编码格局不合併的主题材料(比方GBK和湖北的汉字编码就不合营),而拟订的采取多字节统一编码社会风气具有字符的编码方案,所以Unicode能展现各国的字符编码

1> Unicode编码包蕴UCS-2, UCS-4,分别用2, 4个字节表示二个字符,通用的是UCS-2

2> 由于两个字节在内部存储器中的积攒设计到字符顺序的主题素材

3> Unicode表示ASCII码时,是将高位字节全置为0,所以Unicode和ASCII是不相配的

  Magic Header(by byte) Exmaple("中":0x4E2D)
小尾(LE) FF, FE FF, FE, 2D, 4E
大尾(BE) FE, FF FE, FF, 4E, 2D

 

4. UTF-8

UCS-2代表乌Crane语字母会浪费三个字节,而世界上比较多的资料都以用斯洛伐克(Slovak)语的,所以用Unicode编码进行文件传输和封存的时候就颇为浪费带宽和硬盘, 因而就有了UTF-8, UTF-16的面世来挽留世界

UTF :(UCS Transfer Format)

1> UTF-8:UTF-8是一种变长的编码格局,能够用1~4个字节表示三个字符

2> UTF-8的原码依然Unicode,只是其将Unicode实行了格式化编码,转化格局:

     2.1 单字节的字符(如罗马尼亚(罗曼ia)语),字节的第一位设为0,对于韩文,UTF-8码只占用二个字节,和ASCII码完全一样;

     2.2 需用n个字节的字符(n>1),第三个字节的前n位设为1,第n 1位设为0,后边字节的前两位都设为10,那n个字节的其余空位填充该字符unicode码(2进制的),高位用0补足。

     如格式化字符:"中"(0x4E2D, 0100 1110 0010 1101)

     (1) "中"占用2个字节,因为UTF-8必要多的bit来做标志,所以至少需求多余2个字节的半空中来转UTF-8,先设n=3

     (2) 3个字节各自的标志bit如下:

          1 : 1110 0000

          2 : 1000 0000

          3 : 1000 0000

     (3) 我们开掘剩下的空的bit位数 = 4 6 6 = 16 = 2字节,刚好够放一个Unicode,依次将"中"(0100 1110 0010 1101)的2进制bit放入

          1 : 1110 0100     0xE4

          2 : 1011 1000     0xB8

          3 : 1010 1101     0xAD

     (4) 尽管Unicode填入UTF-8的模版没说是大尾照旧小尾,而是用我们如常看2进制数的次第填入的,但这一个顺序其实是二个大尾(0x4E放在前边转bit)

3> Windows中,会利用BOM来标识编码顺序,UTF-8由于尚未编码顺序,Windows就用BOM = EF BB BF来代表UTF-8编码,但为数相当多年体育系和软件中是不认那么些BOM的

4> "®"字符的Unicode编码是0x00AE,在UTF-8编码中是运用2个字节的沙盘来编码的:C2 AE = 1100 0010 1010 1110,收收取来就是0 0010 10 1110 = 000 1010 1110,然后高位补0 = 0000 0000 1010 1110 = 0xAE,也正是说Unicode编码高位为00的字符,在UTF-第88中学都足以用2字节的模版来编码,能够节省四个字节

1. ASCII码 1 ASCII码不包蕴大家输入法中的"特殊字符"和"数学字符"等,他们都属于扩大ASCII 字符 2. GBK编码 GBK实际上是...

UTF :(UCS Transfer Format)

          3 : 1000 0000

  Magic Header(by byte) Exmaple("中":0x4E2D)
小尾(LE) FF, FE FF, FE, 2D, 4E
大尾(BE) FE, FF FE, FF, 4E, 2D

     如格式化字符:"中"(0x4E2D, 0100 1110 0010 1101)

1> UTF-8:UTF-8是一种变长的编码格局,可以用1~4个字节表示四个字符

2. GBK编码

3> GBK的汉字编码占用2个字节

4. UTF-8

          2 : 1000 0000

1> 假使第一个字节的压倒127(0x7F, 0111 1111,即最高位为0),则意味着从那几个字节开端的2个字节是意味一个汉字,不然,则是一个塞尔维亚语ASCII码

时时app平台注册网站 1

     2.2 需用n个字节的字符(n>1),第二个字节的前n位设为1,第n 1位设为0,前面字节的前两位都设为10,那n个字节的其他空位填充该字符unicode码(2进制的),高位用0补足。

3> Unicode表示ASCII码时,是将高位字节全置为0,所以Unicode和ASCII是不相称的

1> Unicode编码包蕴UCS-2, UCS-4,分别用2, 4个字节表示叁个字符,通用的是UCS-2

2> GBK是兼容ASCII的

3> Windows中,会选取BOM来标识编码顺序,UTF-8由于并未有编码顺序,Windows就用BOM = EF BB BF来代表UTF-8编码,但大多系统和软件中是不认那些BOM的

2> UTF-8的原码照旧Unicode,只是其将Unicode实行了格式化编码,转化格局:

     (4) 即便Unicode填入UTF-8的沙盘没说是大尾照旧小尾,而是用大家如常看2进制数的次第填入的,但以此顺序其实是三个大尾(0x4E放在前方转bit)

3. Unicode编码

          3 : 1010 1101     0xAD

4> 这类编码方式统称为做 “DBCS“(Double Byte Charecter Set 双字节字符集)

GBK实际上是ASCII的国语扩张编码,其法规是:

          1 : 1110 0000

4> "®"字符的Unicode编码是0x00AE,在UTF-8编码中是选取2个字节的模板来编码的:C2 AE = 1100 0010 1010 1110,抽出出来正是0 0010 10 1110 = 000 1010 1110,然后高位补0 = 0000 0000 1010 1110 = 0xAE,也正是说Unicode编码高位为00的字符,在UTF-第88中学都得以用2字节的沙盘来编码,能够节约一个字节

1> ASCII码不满含大家输入法中的"特殊字符"和"数学字符"等,他们都属于扩张ASCII 字符

UCS-2代表韩文字母会浪费三个字节,而世界上多数的资料都以用丹麦语的,所以用Unicode编码实行理文件件传输和封存的时候就颇为浪费带宽和硬盘, 由此就有了UTF-8, UTF-16的出现来救救世界

2> 由于多个字节在内部存款和储蓄器中的积累设计到字符顺序的难题

     (2) 3个字节各自的标志bit如下:

     (1) "中"占用2个字节,因为UTF-8须要多的bit来做标识,所乃至少须要多余2个字节的上空来转UTF-8,先设n=3

Unicode是为着减轻ASCII的各类扩充编码情势不合併的主题素材(举个例子GBK和广西的汉字编码就不协作),而拟订的选择多字节统一编码社会风气具备字符的编码方案,所以Unicode能显示各国的字符编码

          2 : 1011 1000     0xB8

 

     (3) 我们开采剩下的空的bit位数 = 4 6 6 = 16 = 2字节,刚好够放三个Unicode,依次将"中"(0100 1110 0010 1101)的2进制bit归入

 

          1 : 1110 0100     0xE4

     2.1 单字节的字符(如印度语印尼语),字节的首先位设为0,对于葡萄牙语,UTF-8码只占用二个字节,和ASCII码一模一样;

本文由时时app平台注册网站发布于时时app平台注册网站,转载请注明出处:字符编码,字符编码表【时时app平台注册网站】

关键词: