关于python的字符编码

理论特别多,金角大王讲的非常细致和深入浅出。

我来个简短的总结:

python2的编码:默认是ascii,可以改变成gbk,utf-8等,但是用什么编码写的,就存储成什么编码。如果搬到linux,默认是utf8的系统,如果编码也是utf8是可以正常显示中文的;如果搬到windows,默认是gbk的编码,那么编码是utf8的代码就会显示乱码。要正常显示,要做两步,把utf8的代码decode成unicode,再encode成gbk。记住,unicode是底层,其他编码是它的上层,unicode转换到其他编码是包装(encode),其他编码转换到unicode是解包(decode)。unicode既包含其他的编码文字内容,也包含了和其他编码方法的转换关系,unicode是沟通不同编码的桥梁。

python3的编码:默认是utf8,可以改变成gbk,utf-8等,但是在存储时自动转换成unicode存储,所以代码无论拿到linux,还是windows,操作系统都支持unicode,所以即使是在windows,系统也认识unicode,会把unicode自动转换成gbk进行显示,正常显示中文。

反正最通用的方法,就是用utf8编码。

wechat: nick753159 qq: 417966852 email: nzq42@qq.com base: shanghai
原文地址:https://www.cnblogs.com/cyberbit/p/py_encoding.html