Python UTF-8 解碼中的UnicodeDecodeError 故障排除
遇到錯誤「UnicodeDecodeError: 'f; byte 0xff在位置0:無效的起始位元組」表示Python正在嘗試使用 UTF-8 解碼位元組序列,但遇到無效的起始位元組。當假定為 UTF-8 編碼字串的位元組數組包含 UTF-8 編碼規範之外的字元時,就會發生這種情況。
錯誤原因
在提供的範例中,使用 open(path).read() 開啟檔案會觸發解碼嘗試。由於檔案包含不符合 UTF-8 的字節,因此解碼過程失敗,導致錯誤。
解決方案
要解決此問題,必須將檔案作為二進位檔案而不是文字檔案處理。這可以防止 Python 嘗試將位元組解碼為 UTF-8 字串。
透過修改程式碼以使用'rb' 模式開啟文件,我們強制Python 以二進位形式讀取檔案:
<code class="python">with open(path, 'rb') as f: contents = f.read()</code>
在模式參數中指定「b」指示Python 將檔案視為二進位流,確保內容保持為位元組對象,而不嘗試進行任何解碼。
以上是在 Python 中解碼檔案時,為什麼我會收到「UnicodeDecodeError: \'utf-8\' 編解碼器無法解碼位置 0 中的位元組 0xff: 無效起始位元組\」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!