04.python3 的 UnicodeDecodeError 報錯

我在使用 sublime text 在 python3 上運行以下代碼的時候的:

# coding: utf-8
import os
f = open('test.txt','r')
print(f.read())

也遇到了以下報錯:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 9: ordinal not in range(128)

python2 對于一些字符的識別會報錯,網(wǎng)上也有了大量的很成熟的解決辦法,或者說網(wǎng)上的辦法都是針對 python2 的,但是我用的是 python3 啊,為什么還會這樣呢?

我已經(jīng)將系統(tǒng)默認(rèn)運行的 python 程序設(shè)置成 python3 而不是 python2 了
我已經(jīng)在代碼的首行加上了 # coding: utf-8
為什么還會報錯呢?

問題出在對文件的讀取上,也就是 open 這一步
這個時候,有個很簡單的辦法:給 open 傳遞字符的 utf-8 信息,也就是把 open 語句改為下方這樣的:

f = open('id_list_test.txt','r',encoding='utf-8')

再運行一次試試看?是不是問題就解決了呢?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容