一:学习内容
- python编码讲解
- python编码说明
- python中文乱码解决三部曲
二:python编码讲解
1. ASCII编码
美国信息交换标准代码(American Standard Code for Information Interchange,简称ASCII)是一种用于信息交换的美国标准代码,它的作用是给英文字母、数字、标点、 字符转换成计算机能识别的二进制数规定了一个大家都认可并遵守的标准。
ord('a')
ord('z')
chr(97)
chr(122)
Ascii表:
数字范围为:48—57
大写字母范围为:65—90
小写字母范围为:97—122
2. GB2312编码:适用于汉字处理、汉字通信等系统之间的信息交换
3. GBK编码:是汉字编码标准之一,是在 GB2312-80 标准基础上的内码扩展规范,使用了双字节编码
4. ANSI:是与你使用的windows操作系统的语言有关系的,像windows 7 简体中文版就是GBK(用一个字节表示英文,用两个字节表示一个中文)
5. UNICODE编码
这是一种世界上所有字符的编码,但是它没有规定的存储方式。Unicode标准也在不断发展,但最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节)。现代操作系统和大多数编程语言都直接支持Unicode。
print unichr(30000)
print unichr(30001)
6. UTF-8编码
是 Unicode Transformation Format - 8 bit 的缩写, UTF-8 是 Unicode 的一种实现方式。它是可变长的编码方式,可以使用 1~4 个字节表示一个字符,可根据不同的符号而变化字节长度。
可以这么理解:
Unicode包括了utf-8,utf-8包括了gbk,gbk包括了gb2312
三:python编码说明
1. GB2312和gbk编码
Gb2312和gbk主要用于汉字的编码,一般中国的网页gb2312或utf-8用的比较多,如果你的网页主要面对使用汉语的中国人的话,使用gb2312和gbk会非常友好,但是如果你要面向世界,可能在有些电脑的浏览器上没有这种编码,那么网页的汉字内容就会变得无法识别而乱码。
2. GB指国标的意思
3. Ascii码计算机开始是老美发明的,只支持英文,但是随着计算机发展,全世界其他国家也想用,所以发明了unicode编码,支持世界上所有的语言。
4. Utf-8一般在计算机中做存储使用,全世界通用,所有电脑都有。
5. Windows系统中文件存储时选择ansi,其实就是保存为GBK编码
6. Utf-8和GBK(GB2312)之间都必须通过Unicode才能转换
GBK、GB2312----Unicode----UTF-8
UTF-8----Unicode----GBK、GB2312
四:python中文乱码解决三步曲
1. 第一步:文件报存为utf-8
2. 第二步:添加encoding=utf-8
3. 第三步:中文前加u
注意此处的u为unicode的意思
结果:就打印出了不是乱码的中文