深入python字符编码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入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字符编码的主要内容,如果未能解决你的问题,请参考以下文章

深入理解Python字符编码

深入理解pythonpython字符编码和字符串处理

深入理解python字符编码(包含2.x与3.x)

Python深入:编码问题总结

Python深入:编码问题总结

Python中的字符串与字符编码