告别乱码——7行代码判断当前python运行编码,是控制台还是IDE(如PyCharm)

自动检测Python运行环境:避免控制台与IDE乱码问题
解决Python在PyCharm和Windows控制台编码不一致导致的乱码问题,通过7行代码自动判断运行环境,无需手动切换配置。核心在于检查是否能设置控制台文本颜色来区分IDE和控制台。

由于众所周知的原因,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').encode('gbk'<
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值