logo
Loading...

出現UnicodeDecodeError: 'utf-8' codec can't decode byte 0x85 in position 59: invalid start byte問題 - Cupoy

特助您好,我想請問錯誤訊息出現UnicodeDecodeError: 'utf-8' codec c...

ml100-2,ml100-2-d02

出現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()) 

    ```


    另外這個問題已經被問過很多次,下次建議可以先搜尋看看是否有類似的問題