python真是怪胎,我输出一个汉字,错,我写一个汉字的注释,错。查看帮助我才知道,要加入#coding=utf-8。
加入这一句还不行,某些情况下还需要做一些转换。
汉字的输出一般需要先解码为unicode编码,然后再encode成gbk、gb2312输出。
判断是否为unicode编码,可以用instance来做,isinstance(str, unicode)。
解码为unicode编码的方式有两种
1、str.decode('utf-8')
2、unicode(str, 'utf-8')
注释:参数之所以是utf-8,是因为本文件的编码为utf-8
还可以直接指定字符串是unicode编码:
str = u'中文'
此时要想直接print str是不行的,因为输出的时候,str会使用默认的编码进行encode,所以需要str.encode('gbk')。
默认的编码可以用
import sys
print sys.getdefaultencoding()
来获取