logo
Loading...

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

我在輸入時得到這個code。不太知道哪裡錯誤。UnicodeDecodeError: 'utf-8'...

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

2019/09/04 下午 02:13
機器學習共學討論版
林承駿
觀看數:596
回答數:3
收藏數:0

我在輸入時得到這個code。不太知道哪裡錯誤。

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x85 in position 59: invalid start byte

回答列表

  • 2019/09/04 下午 04:26
    高培原
    贊同數:0
    不贊同數:0
    留言數:0

    建議路徑不要有中文

  • 2019/09/04 下午 06:03
    蔡清煌
    贊同數:0
    不贊同數:0
    留言數:0

  • 2019/09/04 下午 09:51
    張維元 (WeiYuan)
    贊同數:1
    不贊同數: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()) 

    ```



    最後科普一下幾種常見的編碼格式:


    * Unicode/UTF8:萬國碼,可支援多種語言的編碼格式

    * ISO-8859-1/latin1:主要用於歐系國家的文字

    * Big5:繁體中文

    * GBK:簡體中文

    * cp950:windows 預設的編碼