簡體   English   中英

UnicodeDecodeError:“utf-8”編解碼器無法解碼 position 76 中的字節 0x81:起始字節無效

[英]UnicodeDecodeError: 'utf-8' codec can't decode byte 0x81 in position 76: invalid start byte

我想創建一個解碼 wifi 密碼的程序。 我還沒有完成,但程序應該打印所有 wifis 的名稱。 但是有這個錯誤,我不知道如何解決。

import subprocess

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

錯誤:

data = subprocess.check_output(["netsh", "wlan", "show", "profiles"]).decode("utf-8").split()
  UnicodeDecodeError: 'utf-8' codec can't decode byte 0x81 in position 76: invalid start byte

netsh提示您正在使用 Windows 系統。 控制台應用程序通常對西歐語言使用 cp850 編碼。 所以你可以嘗試:

data = subprocess.check_output(["netsh", "wlan", "show", "profiles"]).decode("cp850").split("\n")

或者為了安全起見,您可以使用能夠接受任何輸入字節的編碼,如 latin1,但它很少返回 Windows 上的預期字符。但是當輸入不是 utf-8 編碼時,切勿使用utf-8

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM