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

Python 解码子进程命令的标准输出,python,Python,我试图使用Python的子进程来回显一些巴西字符,但是Python没有返回正确的字符 代码 import subprocess output = subprocess.getoutput("echo 'ãõé'") print(output) 结果 “Æä” 编码 import subprocess output = subprocess.getoutput("echo 'ãõé'") print(output) 我确实尝试用'latin-1'和'

我试图使用Python的子进程来回显一些巴西字符,但是Python没有返回正确的字符

代码

import subprocess

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

“Æä”

编码

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') UnicodeEncodeError:“latin-1”编解码器无法对位置3中的字符“\u201a”进行编码:序号不在范围内(256)

问题

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

“õõé”

版本

Python版本:3.9


操作系统:Windows 10 Home

在Ubuntu上使用utf-8编码终端为我工作。什么是
locale.getpreferredencoding()
?Microsoft有一个新的窗口终端,它比cmd控制台在编码方面做得更好。我的locale.getPreferredEncode()最后是“cp1252”,您只能显示代码页支持的glyph。您的代码应该在支持gui的utf-8中工作(我猜是空闲的,jupyter,vscode等等),但否则您需要查看您的控制台或登录会话是否可以重新配置为utf-8。这取决于哪个windows 10,所以谷歌是你的朋友。关于这件事的一个很好的解释是。我现在没有我的windows机器,我希望你能解决这个问题并把它发布在这里。我在Ubuntu上使用utf-8编码终端。什么是
locale.getpreferredencoding()
?Microsoft有一个新的窗口终端,它比cmd控制台在编码方面做得更好。我的locale.getPreferredEncode()最后是“cp1252”,您只能显示代码页支持的glyph。您的代码应该在支持gui的utf-8中工作(我猜是空闲的,jupyter,vscode等等),但否则您需要查看您的控制台或登录会话是否可以重新配置为utf-8。这取决于哪个windows 10,所以谷歌是你的朋友。关于这件事的一篇好文章是。我现在没有我的windows机器,我希望你能找到解决问题的方法并把它发布在这里。