当我们在PyCharm中运行调用CMD命令行的程序时,有时会遇到中文内容在命令行中显示乱码的问题,解决此问题需经过以下步骤:
步骤一:设置PyCharm的编码格式
- 在PyCharm中打开Settings/Preferences窗口。
- 在搜索栏中输入“File Encoding”,找到“File Encoding”选项。
- 设置“Global Encoding”和“Project Encoding”为UTF-8编码。
- 保存设置。
步骤二:在CMD中设置编码格式
- 在CMD窗口中输入“chcp 65001”命令,设置CMD编码为UTF-8编码。
- 运行程序时,在CMD窗口上方可以看到类似以下的信息: Active code page: 65001。
以下是两条示例:
示例一:使用Python调用CMD命令行并输出中文内容
import os
cmd = 'dir' # 此处为CMD中的命令,可自行更改
result = os.popen(cmd).read()
print(result) # 输出CMD窗口的内容
运行以上程序,可以看到输出的结果中,中文会出现乱码。解决方法如下:
在程序中添加以下代码:
result = result.decode('gbk').encode('utf-8')
print(result)
以上代码中,我们将CMD窗口输出的内容从gbk格式转化为utf-8格式,这样就可以正确输出中文字符了。
示例二:使用subprocess调用CMD命令行并输出中文内容
import subprocess
cmd = 'dir' # 此处为CMD中的命令,可自行更改
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
result, err = p.communicate()
result = result.decode('gbk').encode('utf-8')
print(result)
类似于示例一,我们需要对输出进行更改,将其从gbk格式转化为utf-8格式。但是,使用subprocess.Popen比os.popen更灵活,可以处理更多复杂的命令行。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题 - Python技术站