Python2中的头文件
英语是世界上最流行的语言,任何IDE中文本的编码方式几乎都是ASCII,但是,如果想在编译环境中正常显示中文,就需要付出一些额外的努力。对于Python2来说,就面临这个“中文能否正常显示”的问题,因此,为了让编译器知道这些字符是中文,就不能使用ASCII编码了,但是同时又得兼容ASCII,于是,‘utf-8’是一个不错的选择。我们常常在程序最开始加上,
但是话说回来,对于python3来说,默认的编码方式就是'utf-8', 完全不存在此问题,所以也就不用加这一行了。
Python2 与 Python3 在字符编码领域的区别
习惯了Python2的同学,如果直接进行Python3的开发,一定会被此问题大大困扰,因为楼主就因为此问题搞的异常痛苦。
你一定会发现一个问题,那就是,对于str的变量,将无法decode了,会提示,str对象没有decode方法!这是为什么呢?因为,在Python3里面,所有的字符串均是以Unicode码存储的! 本身就是Unicode,自然也就不需要decode了,只需要encode即可。要知道,如果是Python2,如果想对一个字符串进行编码的话,要首先将其decode成unicode,然后再进行encode,而Python3完全省掉了这一步。
上一节有提到,gb18030,gbk,gb2312这三者是向下兼容的,以下在Python3中做一个小实验,展示了如何将gb2312、gbk和utf-8相互转换。
同时,我们也可以发现,常用的汉字用“UTF-8”编码大约占3字节。
那么,Python2 和 Python3中有关字符编码,到底是怎样一种关系呢?
本质上来说,这一点是相当混乱的。这不是楼主说的,而是很多程序员的共识。
在Python3