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

Patricia Arquette
發布: 2024-11-04 13:13:29
原創
362 人瀏覽過

Why am I receiving a

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

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