编码格式ASCII,GB2312,GBK,GB18030,Unicode,UTF-8,以及python编码

本文深入介绍了ASCII、GB2312、GBK、GB18030、Unicode和UTF-8编码,以及Python中的编码问题。详细讲解了各种编码的发展历程和适用场景,特别关注了中文编码的演变。此外,文章还讨论了Python2和Python3中字符串的处理差异,并列举了Python中文编码过程中常见的问题和解决方案。
摘要由CSDN通过智能技术生成

ASCII,GB2312,GBK,GB18030,Unicode,UTF-8,及python编码

1 概述

         学python以来,写脚本程序时遇到读写文件,经常遇到编码问题,中文为乱码的情况。每次遇到此类问题,各种百度,加各种咨询,然而仍然不明其原因,问题的解决情况也是误打误撞,有些能解决,有些解决不了。这样让学写python编程之路变得异常坎坷。终于,下定决心,将编码问题好好学习理解一番。

2 编码介绍

         由于计算机只识别0和1,为了使计算机能够支持文字和字母等符号,方便实用操作计算机。于是,字符编码应运而生。

2.1 ASCII编码

         最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255)。
         由于计算机是美国人发明的,因此,最早只有127个字符被编码到计算机里(即用一个字节的后七位),也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。

         随着发展,计算机开始普及,当计算机流传到欧洲时,问题再次出现,原本的ASCII编码只能解决美国人的编码问题,无法将欧洲的文字表示出来。于是乎,欧洲人就把ASCII码中没用到的第一位给用了,即:

         (1)ASCII码用一个字节的后七位,表示范围是0-127;

         (2)欧洲人把这个字节的第一位也用了,表示范围0-255。除去原本的0-127,剩下128-255.128-159之间为控制字符,160-255位文字符号,其中包括了西欧语言、希腊语、泰语、阿拉伯语、希伯来语。砖家们决定把他们的编码名称叫做Latin1,后面由于欧洲统一制定ISO标准,所以又有了一个ISO的名称,即ISO-8859-1。

2.2 中文编码GB2312,GBK,GB18030

         计算机技术传到了亚洲大地,比如中国。原本的一个字节的8个位全都用完了,但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312,GBK,GB18030编码,用来把中文编进去,产生了国标码

         国标码是汉字的国家标准编码,目前主要有GB2312、GBK、GB18030三种。

         (1)GB2312编码方案于1980年发布,收录汉字6763个,采用双字节编码。

         (2)GBK编码方案于1995年发布,收录汉字21003个,采用双字节编码。

         (3)GB18030编码方案于

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值