Python UTF-8 解碼中的UnicodeDecodeError 故障排除
遇到錯誤「UnicodeDecodeError: 'utf-8' 編解碼器無法解碼位元組0xff在位置0:無效的起始位元組」表示Python 正在嘗試使用UTF-8 解碼位元組序列,但遇到無效的起始位元組。當假定為 UTF-8 編碼字串的位元組數組包含 UTF-8 編碼規範之外的字元時,就會發生這種情況。
錯誤原因
在提供的範例中,使用 open(path).read() 開啟檔案會觸發解碼嘗試。由於檔案包含不符合 UTF-8 的字節,因此解碼過程失敗,導致錯誤。
解決方案
要解決此問題,必須將文件作為二進位文件而不是文字檔處理。這可以防止 Python 嘗試將位元組解碼為 UTF-8 字串。
透過修改程式碼以使用 'rb' 模式開啟文件,我們強制 Python 以二進位形式讀取檔案:
with open(path, 'rb') as f:
contents = f.read()
在模式參數中指定「b」指示 Python 將檔案視為二進位流,確保內容保持為位元組對象,而不嘗試進行任何解碼。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3