Python 中的解碼錯誤:轉換位元組時出現UnicodeDecodeError
Python 中處理字串時遇到的常見錯誤是指嘗試解碼時出現UnicodeDecodeError使用UTF-8 編解碼器的位元組。當 Python 嘗試將位元組數組解釋為 UTF-8 編碼的字串並遇到不符合 UTF-8 規則的位元組序列時,會發生此錯誤。
在提供的特定情況下引用URL,從 pix2pix-tensorflow GitHub 儲存庫編譯「process.py」腳本時遇到錯誤。該腳本嘗試使用 open() 讀取並載入檔案(特別是圖像)。當 Python 嘗試將檔案內容解碼為 UTF-8 字串時,就失敗了,因為 UTF-8 編碼不允許檔案開頭的位元組序列。
此錯誤的根本原因是檔案內容的實際性質與 Python 假設它們是 UTF-8 編碼之間的不符。原始文件可能是二進位文件,例如影像或壓縮數據,無法可靠地解碼為 UTF-8。
要解決此問題,應使用' 明確將檔案讀取為二進位資料open() 函數中的rb' 模式:
<code class="python">with open(path, 'rb') as f: contents = f.read()</code>
透過使用'rb' 模式,Python會將文件視為二進位文件,並且不會嘗試對其進行解碼。這將防止發生 UnicodeDecodeError。
以上是為什麼我的 Python 程式碼在讀取檔案時會拋出 UnicodeDecodeError?的詳細內容。更多資訊請關注PHP中文網其他相關文章!