一:Python2
- python2默认编码格式是ascii码,解释器解释代码时会将代码以及代码中的字符串等转换成ascii码再执行。这样会导致字符串输出或传输时,与当前环境编码格式不同的话会显示乱码。
- 我们可以通过 代码文件开头编码声明 改变编码格式,告知解释器 以什么编码格式 解释文件内容,例如:在文件头声明了 #_*_coding:utf-8*_
- 在有#_*_coding:utf-8*_的情况下,字符串变量如果写成name=u"字符串"格式,那这个字符串就是unicode格式解释和保存的;不加这个u就是utf-8格式
二:Python3
- python3默认文件编码格式就是utf-8,所以可以直接在代码中写中文,不需要文件头声明编码了。
- 字符串变量默认会被unicode格式解释和存储,不需要再显式加 u 前缀。
三:转码
一个原则:所有字符集的转换,都要先decode成为unicode,再encode成为其他格式,不能直接转其他格式,否则会解析失败成为乱码。