养成使用utf8格式的习惯,但是不能保证所有的代码都是utf8格式,所以这里提供三个函数
getCoding tran2UTF8 tran2GBK ,分别是查看编码格式,转换为utf8,gbk格式,加入你的输出是乱码,可以重定向出来,使用notepad++查看,调整编码,直到看到的中文正常,比如,以ANSI编码时发现中文显式正常,说明输出是ansi格式,而中文是不可能用ansi码表示的,所以判断其格式是unicode:
def getCoding(strInput): ''' 获取编码格式 ''' if isinstance(strInput, unicode): return "unicode" try: strInput.decode("utf8") return 'utf8' except: pass try: strInput.decode("gbk") return 'gbk' except: pass def tran2UTF8(strInput): ''' 转化为utf8格式 ''' strCodingFmt = getCoding(strInput) if strCodingFmt == "utf8": return strInput elif strCodingFmt == "unicode": return strInput.encode("utf8") elif strCodingFmt == "gbk": return strInput.decode("gbk").encode("utf8")def tran2GBK(strInput): ''' 转化为gbk格式 ''' strCodingFmt = getCoding(strInput) if strCodingFmt == "gbk": return strInput elif strCodingFmt == "unicode": return strInput.encode("gbk") elif strCodingFmt == "utf8": return strInput.decode("utf8").encode("gbk")
相关资料:http://my.oschina.net/u/993130/blog/199214