出現UnicodeDecodeError: 'utf-8' codec can't decode byte 0x85 in position 59: invalid start byte問題
2019/05/22 下午 11:54
機器學習共學討論版
蔡承邑
觀看數:41
回答數:1
收藏數:0
ml100-2
ml100-2-d02
特助您好,
我想請問錯誤訊息出現
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x85 in position 59: invalid start byte
不知要怎麼處理
我把擷圖附上來
感謝您!
回答列表
-
2019/05/23 上午 10:40張維元 (WeiYuan)贊同數:0不贊同數:0留言數:0
嗨,這個部分是讀檔的時候預設的編碼方式跟實際內容不同導致的錯誤。有可能是作業系統環境的差異導致。不管你是用 Python 原生的 open/read 或是 Pandas 提供的 read_csv 方法,都可以再開檔的時候指定 encoding 參數。
假設要使用 utf-8 編碼方式存取檔案,使用方法如下:
```
encoding = 'utf-8'
# 法一
f =open('filename.txt','r', encoding=encoding)
text = f.read()
f.close()
# 法二
df = pd.read_csv('filename.csv',encoding=encoding)
```
另外一種常見的問題是,可能不知道原始檔案的編碼方式為何,可以透過 chardet 工具來查詢:
```
import chardet
with open('filename.txt','rb') as f:
result = chardet.detect(f.read())
```
另外這個問題已經被問過很多次,下次建議可以先搜尋看看是否有類似的問題