问题描述
python2.X,代码中指定了UTF-8,但是在cmd命令行窗口时,打印的中文仍然会乱码
在python3不存在该问题
运行结果:
原因
搜索得知,中文windows默认的输出编码为gbk ,与脚本中定义的UTF-8不一样,所以出现了解码失败的情况
解决方法
有如下两种方法可以解决这个问题
方法一
我们可以通过先把中文解码为unicode,然后在转化为gbk来解决这个问题:
修改后运行结果:
方法二
当然,我们也可以通过改变cmd命令行窗口的输出格式来解决这个问题,
- chcp 65001 就是换成UTF-8代码页
- chcp 936 可以换回默认的GBK
但是这样就降低了脚本的兼容性,在其他环境运行的时候可能还会出现这样的错误,
而且可能会影响其他脚本运行,所以推荐使用第一种方法