1. 程式人生 > >UnicodeDecodeError- 'utf-8' codec can't decode byte 0xc4 in position 0- invalid continuation byte的解決

UnicodeDecodeError- 'utf-8' codec can't decode byte 0xc4 in position 0- invalid continuation byte的解決


 在用pandas讀入csv文件是,因為文件中有中文所以會出現讀取不了的錯誤。錯誤的原因是'utf-8'編解碼器無法解碼0位的位元組0xc4

9c1af17bccfc95330da1d040aa11c6a.png-15.6kB

解決方案:

在讀入檔案後面加encoding=’gbk’,
如:pddata=pd.read_csv('felipus.csv',encoding='gbk')


有興趣的繼續看原因!

 眾所周知,我們用python預設的是utf-8編碼。關於編碼方式的介紹,我推薦看一下廖大的python教程——“字串和編碼”。既然utf-8格式不能正確的讀取帶中文的csv檔案,那麼我們就選取一個可以讀取中文字元的格式不就好了嗎。

 那麼什麼格式可以讀取中文字元呢?我們開啟Python3官方網站: 找到關於標準字元的部分。如下圖:

image_1c2c40hfhniuop7nln7im1rbh13.png-83.1kB

 那麼到底要改成什麼格式呢?可以看到表格第三列Language表示的是此種編碼支援什麼語言。那麼我們找找看。

image_1c2c48jlei281li6143317fbh5j1t.png-52.5kB!

表格就不在這裡展示給大家看了,有興趣的自己去網站上看吧。反正在我仔細的尋找下一共有big5;big5hkscs;gb2312;gbk;gb18030;hz;iso2022_jp_2這5種格式可能支援中文。經過我的測試,發現gb2312;gbk;gb18030這3種格式可以順利的讀取帶中文的csv檔案。(既然3種都可以,那麼我們就記個好記的’gbk’吧)

image_1c2c4ramh15an235ojsesm1vvp3q.png-17.9kB

  It works!