python编码类型转换及字符集探讨

本文深入探讨了Python中的字符集,包括ASCII、ISO-8859-1、GB2312、GBK、GB18030以及UTF-8等。同时,介绍了Python字符串的类型转换,如Unicode与str之间的转换,以及编码解码的常见问题和解决方案。通过实际操作,展示了处理不同编码文件的示例,强调了编码声明在源文件中的作用和影响。
摘要由CSDN通过智能技术生成

一直遇到python编码的问题。常常抓取的网页数据信息,邮件收发信息,涉及到文字处理的,都时不时出现编码的问题。终于,觉得有必要认真了解下这个编码过程和出现对应的问题如何解决,在网上找了很多解释和文章,整理了下,并结合实践了一些,记录在这里。


1、常见字符集

ASCII及其扩展字符集
作用:表语英语及西欧语言。
位数:ASCII是用7位表示的,能表示128个字符;其扩展使用8位表示,表示256个字符。
范围:ASCII从00到7F,扩展从00到FF。
ISO-8859-1字符集
作用:扩展ASCII,表示西欧、希腊语等。
位数:8位,
范围:从00到FF,兼容ASCII字符集。
GB2312字符集
作用:国家简体中文字符集,兼容ASCII。
位数:使用2个字节表示,能表示7445个符号,包括6763个汉字,几乎覆盖所有高频率汉字。
范围:高字节从A1到F7, 低字节从A1到FE。将高字节和低字节分别加上0XA0即可得到编码。

GB2312码是中华人民共和国国家汉字信息交换用码,19815月实施,通行于大陆。新加坡等地也是用此编码。

GB 2312规定任意一个图形字符都采用两个字节表示,每个字节均采用7位编码表示,习惯上称第一个字节为高字节,第二个字节为低字节。

GB 2312将代码分别表示为94个区,对应第一个字节;每个区94个位,对应第二个字节,两个字节的值分别为区号值和位号值加32(20H),因此也称为区位码。019符号,数字区,16-87区为汉字区,10-15区,88-94区是有待进一步标准化的空白区。GB 2312最多能表示6763个汉字。编码范围为2121H-777EH,与ASCII有重叠,通行的方法是将GB码两个字节的最高位置1以示区别。


BIG5字符集
作用:统一繁体字编码。
位数:使用2个字节表示,表示13053个汉字。
范围:高字节从A1到F9,低字节从40到7E,A1到FE。

BIG-5 码是通行于台湾、香港地区的一个繁体字编码方案,俗称大五码。它并不是一个法定的编码方案,但它广泛地被应用于电脑业,尤其是国际互联网中,从而成为一种事实上的行业标准。它包括440个符号,一级汉字5401个,二级汉字7652个,共计13060个汉字。BIG5是一个双字节编码方案,其第一字节的值在16进制的A0-7E之间,第二字节在A1-FE之间。一次其第一个字节的最高位是1,第二字节的最高位可能是1,也可能是0


GBK字符集
作用:它是GB2312的扩展,加入对繁体字的支持,兼容GB2312。
位数:使用2个字节表示,可表示21886个字符。
范围:高字节从81到FE,低字节从40到FE。

GBK 向下与GB 2312编码兼容,向上支持ISO 10646.1国际标准,是前者向后者过渡过程中的一个承上启下的标准,共收录汉字21003个,符号883个,并提供1894个造字码位,简,繁体字融为一库。


GB18030字符集
作用:它解决了中文、日文、朝鲜语等的编码,兼容GBK。
位数:它采用变字节表示(1 ASCII,2,4字节)。可表示27484个文字。
范围:1字节从00到7F; 2字节高字节从81到FE,低字节从40到7E和80到FE;4字节第一三字节从81到FE,第二四字节从30到39。

GB 18030编码标准由信息产业部和国家质量技术监督局在20003月日联合发布,并作为国家标准在2001年的1月强制执行。

GB 18030是在原来GB2312-1980标准和GBK编码标准的基础上进行的扩充,增加了四字节部分的编码。它可以完全映射ISO 10646的基本平面和所有辅助平面,共有150多万码位。在ISO 10646的基本平面内,它在原来的2万多汉字的基础上增加了7000多个汉字的码位和字形。它主要目的是为了解决一些生,难,偏字的问题,以及适应出版,邮政,户政

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值