Python子进程check_output解码特殊字符

Alp*_*pha 5 python subprocess character-encoding special-characters python-3.x

我有一些python编码的问题.当我尝试执行此操作时:

subprocess.check_output("ipconfig", shell=True)
Run Code Online (Sandbox Code Playgroud)

它给了我一个带有特殊字符的输出,比如:

"Statut du m\x82dia"
"M\x82dia d\x82connect\x82"
Run Code Online (Sandbox Code Playgroud)

(我是法国人)

当我尝试用最后一个解码.decode()时,它给了我这个错误:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x82 in position 78: invalid start byte
Run Code Online (Sandbox Code Playgroud)

我尝试使用.decode("utf-8"),我玩了几个小时的编码和解码,我找不到答案.我在互联网上看到的一切都没有用.也许我只是愚蠢,但嘿.我该怎么做才能摆脱那些解码错误并将我的特殊字符打印出来?

谢谢.

Jos*_*Lee 6

您正在通过CMD调用该命令,CMD具有Unicode模式和ANSI模式."正确"的方法是调用Unicode模式,但您可以添加encoding="437"encoding="850"调用子进程调用以使其工作.这取决于您知道当前代码页是什么.