赞
踩
学python以来,写脚本程序时遇到读写文件,经常遇到编码问题,中文为乱码的情况。每次遇到此类问题,各种百度,加各种咨询,然而仍然不明其原因,问题的解决情况也是误打误撞,有些能解决,有些解决不了。这样让学写python编程之路变得异常坎坷。终于,下定决心,将编码问题好好学习理解一番。
由于计算机只识别0和1,为了使计算机能够支持文字和字母等符号,方便实用操作计算机。于是,字符编码应运而生。
最早的计算机在设计时采用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。
计算机技术传到了亚洲大地,比如中国。原本的一个字节的8个位全都用完了,但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312,GBK,GB18030编码,用来把中文编进去,产生了国标码。
国标码是汉字的国家标准编码,目前主要有GB2312、GBK、GB18030三种。
(1)GB2312编码方案于1980年发布,收录汉字6763个,采用双字节编码。
(2)GBK编码方案于1995年发布,收录汉字21003个,采用双字节编码。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。