Python字符编码和转码

一:Python2

  1. python2默认编码格式是ascii码,解释器解释代码时会将代码以及代码中的字符串等转换成ascii码再执行。这样会导致字符串输出或传输时,与当前环境编码格式不同的话会显示乱码。
  2. 我们可以通过 代码文件开头编码声明  改变编码格式,告知解释器 以什么编码格式 解释文件内容,例如:在文件头声明了 #_*_coding:utf-8*_
  3. 在有#_*_coding:utf-8*_的情况下,字符串变量如果写成name=u"字符串"格式,那这个字符串就是unicode格式解释和保存的;不加这个u就是utf-8格式

二:Python3

  1. python3默认文件编码格式就是utf-8,所以可以直接在代码中写中文,不需要文件头声明编码了。
  2. 字符串变量默认会被unicode格式解释和存储,不需要再显式加 u 前缀。

三:转码

  一个原则:所有字符集的转换,都要先decode成为unicode,再encode成为其他格式,不能直接转其他格式,否则会解析失败成为乱码。

原文地址:https://www.cnblogs.com/ygj0930/p/10935853.html