首页 > 解决方案 > 解码子进程命令的标准输出

问题描述

我正在尝试使用 Python 的子进程来回显一些巴西字符,但 Python 不返回正确的字符。

代码

import subprocess

output = subprocess.getoutput("echo 'ãõé'")
print(output)

结果

'Æä'

编码

我确实尝试使用'latin-1''utf-8'进行编码,但同样的问题仍然存在:

output = subprocess.getoutput("echo 'ãõé'").encode('utf-8')
print(output.decode('utf-8'))

'Æä'

output = subprocess.getoutput("echo 'ãõé'").encode('latin-1')
print(output.decode('latin-1'))

output = subprocess.getoutput("echo 'ãõé'").encode('latin-1') UnicodeEncodeError: 'latin-1' codec can't encode character '\u201a' in position 3: ordinal not in range(256)

问题

如何使用正确的字符打印 Echo 命令的输出,如下所示:

'ãõé'

版本

Python版本:3.9

操作系统:Windows 10 家庭版

标签: python

解决方案


推荐阅读