python中encoding: utf-8和sys.setdefaultencoding("utf-8")作用

在python2中我们常常在文件头部写入

#encoding: utf-8

reload(sys)
sys.setdefaultencoding("utf-8") 

下面解释下这2个编码设置的作用

1. encoding: utf-8 #默认编码方式
2. sys.setdefaultencoding(“utf-8”) #默认解码方式

规则1
print 后面如果是unicode(‘str’) 那么编码就会按照sys.stdout.encoding来自动编码, 在windows中为GBK,在linux中为UTF-8

规则2
pirnt 后面如果是’str’ 不带unicode那么就按照指定的解码与编码方式, 如果没有指定就读取默认的解码和编码方式

特例:
raw_input(‘中文’) , 其实也是一种print 只不过编码的时候不是按照sys.stdout.encoding来编码而是需要手动指定,如果不指定就用默认encoding: utf-8来编码

你可能感兴趣的:(python)