由于众所周知的原因,python中的PyCharm输出时使用utf-8编码,而控制台窗体里则遵循系统编码。在windows简中版本下,系统使用gbk编码,而调试用的PyCharm使用UTF-8,这就带来了一系列困扰人的问题。这些问题在python2尤甚,但python3里,读写文件、执行cmd命令等仍然会发生乱码。(由于Linux默认UTF-8编码,在纯Linux下并不发生这类问题)
比如,调试好好的编码
# coding: utf-8
print "你好"
在PyCharm里输出正常。但在cmd里执行,或者编译为exe以后,就变成了
浣犲ソ
如果我们为了打包后不乱码,这样处理
# coding: utf-8
print "你好".decode('utf-8').encode('gbk')
那么在cmd里执行正常,但我们要在PyCharm里调试时,就又乱码了
���
一个方法是重写print和input函数
# coding: utf-8
USECONSOLE = True
def print(statement):
if USECONSOLE:
print(str(statement).decode('utf-8').</