我在使用 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')
再運行一次試試看?是不是問題就解決了呢?