文本编码——精选推荐
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
⽂本编码
字符编码
计算机只能处理数字,如果要处理⽂本,就必须先把⽂本转换为计算机能识别的⼆进制数才能处理,将⽂本转换为⼆进制数的过程称为:编码;
常见的字符编码格式有:ASCII,unicode,GBK,UTF-8等
ASCII
ASCII (American Standard Code for Information Interchange): 美国信息交换标准代码,⼀种使⽤7个或8个⼆进制位进⾏编码的⽅案(标准ASCII码为7位,扩充为8位),最多可以给256个字符(包括英⽂⼤⼩写字母、数字、标点符号、控制字符及其他符号)
GB2312/GBK
要处理中⽂显然⼀个字节是不够的,⾄少需要两个字节,⽽且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,⽤来把中⽂编进去。
GB2312,⼜称为:《信息交换⽤汉字编码字符集》,由中国国家标准总局1980年发布,1981年5⽉1⽇开始实施的⼀套国家标准,标准号是[GB 2312]( 2312)—1980。
GB 2312标准共收录6763个汉字,其中⼀级汉字3755个,⼆级汉字3008个;同时,GB 2312收录了包括拉丁字母、希腊字母、⽇⽂平假名及⽚假名字母、俄语西⾥尔字母在内的682个全⾓字符。
GBK,国标码,⼜称为:《汉字内码扩展规范》,对原GB2312进⾏扩充,该标准⼀经推出,就WINDOWS95所采⽤。
GBK⽀持繁体/简体中⽂,GB2312只⽀持简体中⽂。
Unicode
全世界有上百种语⾔,各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语⾔混合的⽂本中,显⽰出来会有乱码。
因
此,Unicode应运⽽⽣。
Unicode,(万国码,统⼀码),Unicode把所有语⾔都统⼀到⼀套编码⾥,这样就不会再有乱码问题了。
Unicode,⼜分为两种:ucs-2(2字节的Unicode编码)和ucs-4(4字节的Unicode编码)
UTF-8
新问题的出现:Unicode编码统⼀采⽤4字节编码,不利于数据传输,因此,⼀种对Unicode编码进⾏压缩的UTF-8编码出现。
UTF-8,可变长的万国码,最少使⽤1个字节(8bit),最多使⽤4个字节数进⾏编码,常⽤的英⽂字母被编码成1个字节,汉字通常是3个字节。
python3默认使⽤该编码格式。
计算机系统通⽤的字符编码⼯作⽅式
在计算机内存中,统⼀使⽤Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8或其他编码。
⽤⽂本⽂件编辑⽂本的时候,从⽂件读取的UTF-8/GBK字符被转换为Unicode字符到内存⾥,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到⽂件:
字节
字节是⼆进制数据的单位。
⼀个字节通常8位长。
但是,⼀些⽼型号计算机结构使⽤不同的长度。
为了避免混乱,在⼤多数国际⽂献中,使⽤词代替byte。
在多数的计算机系统中,⼀个字节是⼀个8位长的数据单位,⼤多数的计算机⽤⼀个字节表⽰⼀个字符、数字或其他字符。
⼀个字节也可以表⽰⼀系列⼆进制位。
字节通常简写为“B”,⽽位通常简写为⼩写“b”,计算机存储器的⼤⼩通常⽤字节来表⽰。
字节与bit
数据存储是以“字节”(Byte)为单位,数据传输⼤多是以“位”(bit,⼜名“⽐特”)为单位,⼀个位就代表⼀个0或1(即⼆进制),每8个位(bit,简写为b)组成⼀个字节(Byte,简写为B),是最⼩⼀级的信息单位。
ASCII编码:⼀个英⽂字母(不分⼤⼩写)占⼀个字节的空间。
⼀个⼆进制数字序列,在计算机中作为⼀个数字单元,⼀般为8位⼆进制数。
换算为⼗进制,最⼩值-128,最⼤值127。
如⼀个ASCII码就是⼀个字节。
GBK编码: ⼀个英⽂字母占⼀个字节空间,⼀个中⽂字符占两个字节空间。
UTF-8编码:⼀个英⽂字符等于⼀个字节,⼀个中⽂(含繁体)等于三个字节。
中⽂标点占三个字节,英⽂标点占⼀个字节
Unicode编码:⼀个字符占四个字节
换算:
1byte = 8bit
1KB(KiB) = 1024byte
1MB(MiB) = 1024KB
1GB(GiB) = 1024MB
1TB(TiB) = 1024GB。