首頁  >  文章  >  後端開發  >  在 Python 中讀取檔案時,為什麼我會收到「UnicodeDecodeError:\'utf-8\'編解碼器無法解碼位元組 0xff...\」?

在 Python 中讀取檔案時,為什麼我會收到「UnicodeDecodeError:\'utf-8\'編解碼器無法解碼位元組 0xff...\」?

Susan Sarandon
Susan Sarandon原創
2024-11-04 07:34:02440瀏覽

Why am I getting

如何解決「錯誤 UnicodeDecodeError:'utf-8' 編解碼器無法解碼位置 0 中的位元組 0xff:無效起始位元組」?

嘗試使用 utf-8 編碼將位元組數組資料轉換為 Unicode 字串時,可能會在 Python 中遇到此錯誤,但根據 utf-8 規則,位元組序列無效。

根本原因在這種情況下,Python 在讀取操作期間將檔案內容解釋為 utf-8 編碼的字串。但是,該檔案可能包含非 utf-8 字符,例如位元組序列(例如 0xff)不是 utf-8 中的有效起始位元組。

要解決此錯誤,請考慮以下性質您的文件並應用以下解決方案:

解決方案:

由於該文件可能是二進位文件,因此您應該將其視為二進位。修改檔案讀取程式碼,使用rb 作為開啟模式,如下所示:

<code class="python">with open(path, 'rb') as f:
  contents = f.read()</code>

透過指定'rb',檔案將以二進位模式打開,將位元組保留為位元組而不是位元組將它們解釋為utf-8 編碼的字符。這將阻止 Python 嘗試解碼無效位元組序列並避免異常。

以上是在 Python 中讀取檔案時,為什麼我會收到「UnicodeDecodeError:\'utf-8\'編解碼器無法解碼位元組 0xff...\」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn