python 的编码问题,应该每一个写python代码的童鞋都被困扰过。
别外python2 和 python3 的默认编码又不同,所以弄清楚还是有必要的,不然在网上搜一堆答案一个一个试,还是挺浪费时间的。
首先,python 2.x 的 str
s = "我不是乱码"
s是个字符串,它本身存储的就是字节码(bytes)。
那么这个字节码是什么格式的?
如果这段代码是在解释器上输入的,那么这个s的格式就是解释器的编码格式,对于windows的cmd而言,就是gbk。
如果将段代码是保存后才执行的,比如存储为utf-8,那么在解释器载入这段程序的时候,就会将s初始化为utf-8编码。
python 2.x 的 unicode
我们知道unicode是一种编码标准,具体的实现标准可能是utf-8,utf-16,gbk ……
python 在内部使用两个字节来存储一个unicode,使用unicode对象而不是str的好处,就是unicode方便于跨平台。
你可以用如下两种方式定义一个unicode:
s1 = u"我不是乱码"
s2