我遇到了一些python编码问题。当我尝试执行此操作时:
subprocess.check_output("ipconfig", shell=True)
它为我提供了一个包含特殊字符的输出,例如:
"Statut du m\x82dia"
"M\x82dia d\x82connect\x82"
(我是法国人)
当我尝试在最后用.decode()
解码时,它给了我这个错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x82 in position 78: invalid start byte
我尝试使用.decode("utf-8")
,我玩了几个小时的编码和解码,我无法找到答案。我在互联网上看到的一切都没有用。也许我只是愚蠢,但嘿。
我该怎么做才能摆脱那些解码错误并将我的特殊字符打印出来?
感谢。
答案 0 :(得分:5)
您正在通过CMD调用该命令,CMD具有Unicode模式和ANSI模式。 “正确”方法是调用Unicode模式,但您可以将encoding="437"
或encoding="850"
添加到子进程调用以使其工作。这取决于您知道当前代码页是什么。