一、编码
常用的编码格式:ASCII、Unicode、utf-8
这三个都是一种编码格式,最初是ASCII编码支持的编码范围有局限性,出现乱码的问题。后来出现了Unicode新的编码格式解决了乱码的问题,但是Unicode编码一个字符占用两个字节,在处理中文等时完全可以满足,但是在处理英文时有些浪费(主要是体现在文件存储和传输上)。于是出现了utf-8新的编码格式,utf-8编码的长度是可变的,可以根据Unicode字符数据的大小将数据编码成1-6个字节,把英文编码成1个字节(英文1个字节,汉字3个字节,生僻字4-6个字节),Unicode字符经过utf-8转换之后就可以节省空间。utf-8编码包含了ASCII编码。
ASCII 1个字节
Unicode 2个字节(生僻字4个字节)
utf-8 1-个字节,英文1个字节,汉字3个字节,生僻字4-6个字节
数据流转时编码格式的转换:
所以,文件在保存的时候可以是各种格式,在代码中可以将读取出的文件或者是中文等转换成utf-8,然后再加载到内存中就不会有问题了(在Windows环境数据存储时可以有多种编码格式存储gbk等)
编码与解码:
编码解码是不同编码格式之间相互转换的一种关系,Python中Unicode和utf-8两者之间:utf-8转Unicode称为解码,Unicode转utf-8称为编码
*.decode()解码。 例如将其他编码解码为Unicode编码
*.encode()编码。例如将Unicode格式编码为指定编码
在含有中文的代码文件中要在文件的开头加上 #-*- coding:utf-8 -*- 指定文件的编码格式为utf-8格式,不写有可能报错