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

Susan Sarandon
發布: 2024-11-04 07:34:02
原創
439 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!