首页 > 代码库 > 深入python字符编码

深入python字符编码

UnicodeEncodeError、UnicodeDecodeError 错误

字符

字符一个信息单位,它是各种文字和符号的统称,比如一个英文字母是一个字符,一个汉字是一个字符,一个标点符号也是一个字符。

字节

字节(Byte)是计算机中存储数据的单元,一个字节等于一个8位的比特,计算机中的所有数据,不论是磁盘文件上的还是网络上传输的数据(文字、图片、视频、音频文件)都是由字节组成的。

字符编码

字符编码(Character Encoding)是将字符集中的字符码映射为字节流的一种具体实现方案,常见的字符编码有 ASCII 编码、UTF-8 编码、GBK 编码等

编码、解码

编码的过程是将字符转换成字节流,解码的过程是将字节流解析为字符。

 

Python 2中的字符编码


python 2 中字符串类型有两种,unicode型和str型,他们存的分别是unicode数据类型和字节数据类型。str 类型的字符串的编码格式可以是 ascii、utf-8、gbk等任何一种类型。

技术分享

无论是utf8还是gbk都只是一种编码规则,一种把unicode数据编码成字节数据的规则,所以utf8编码的字节一定要用utf8的规则解码,否则就会出现乱码或者报错的情况。

在字符编码转换操作时,遇到最多的问题就是 UnicodeEncodeError 和 UnicodeDecodeError 错误了,这些错误的根本原因在于 Python2 默认是使用 ascii 编码进行 decode 或者 encode 操作的

 

深入python字符编码