解码子进程命令的标准输出

2024-06-02 12:17:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用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 Home


Tags: 代码inecho版本编码output进程字符