理解和解决Python2中的编码问题

Posted luchi007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了理解和解决Python2中的编码问题相关的知识,希望对你有一定的参考价值。

前言

经常处理一些文本,处理英文语料没什么问题,但是到了中文这儿就让人抓狂了,稍微不注意就会窜出各种乱码错误,平时出现几个小错误试试调调也能过去,但是对于编码这个问题还是畏惧,这几天好好整理了一下python的编码问题,感谢万能的Google和万能的StackOverflow,算是解决了我当前对编码问题的一些困惑

编码的前世今生

从unicode说去

在计算机中,所有的东西都是以字节形式储存的,但是字节对于我们来说是没有具体意义的,因此我们需要把二进制字节转换成人们能够理解的字符。最早的是使用ASCII码将字符对应到二进制字节上,如下图

给定一个ASCII码65(十六进制41),我们知道它对应的是字符A,但是ASCII码仅仅能够表示有限的字符,于是ISO Latin1 或者8859-1,比ASCII码多拓展了96个字符,之后也有一些字符集进行了更多的拓展,但是世界范围内的字符是很多的,东亚的中日韩还有俄文等字符也需要对应的编码方式,这个时候Unicode的编码方式出来了,Unicode的想法是统一天下编码方式,Unicode涵盖了上数以千计的字符码点方法,而且Unicode留有还有很多未码点空间,所以Unicode能完全满足

以上是关于理解和解决Python2中的编码问题的主要内容,如果未能解决你的问题,请参考以下文章

Python2和Python3中的字符串编码问题解决

一篇文章助你理解Python2中字符串编码问题

python2下解决json的unicode编码问题

一种在python中表示语料库句子的热编码

Python 类中的列表理解范围规则是啥? [复制]

python2中的编码的问题