【Python】解决Python脚本 在cmd命令行窗口运行时,中文乱码问题

时间:2022-02-06 20:34:17

问题描述

python2.X,代码中指定了UTF-8,但是在cmd命令行窗口时,打印的中文仍然会乱码

在python3不存在该问题

【Python】解决Python脚本 在cmd命令行窗口运行时,中文乱码问题

运行结果:

【Python】解决Python脚本 在cmd命令行窗口运行时,中文乱码问题

原因

搜索得知,中文windows默认的输出编码为gbk ,与脚本中定义的UTF-8不一样,所以出现了解码失败的情况

解决方法

有如下两种方法可以解决这个问题

方法一

我们可以通过先把中文解码为unicode,然后在转化为gbk来解决这个问题:

【Python】解决Python脚本 在cmd命令行窗口运行时,中文乱码问题

修改后运行结果:

【Python】解决Python脚本 在cmd命令行窗口运行时,中文乱码问题

方法二

当然,我们也可以通过改变cmd命令行窗口的输出格式来解决这个问题,

  • chcp 65001 就是换成UTF-8代码页
  • chcp 936 可以换回默认的GBK

但是这样就降低了脚本的兼容性,在其他环境运行的时候可能还会出现这样的错误,

而且可能会影响其他脚本运行,所以推荐使用第一种方法