SyntaxError: Non-ASCII character 與 Cannot decode using encoding "ascii" 錯誤解決

香吧香發表於2023-11-11

轉載請註明出處:

  python除錯時遇到的兩個相同的編碼錯誤進行總結:

1.錯誤:Cannot decode using encoding "ascii", unexpected byte at position  

  具體 錯誤資訊如下: 

         

 2.錯誤:SyntaxError: Non-ASCII character

  當程式檔案中,存在中文字元時候,檔案未宣告編碼格式就會出現報錯資訊:

target_td = soup.find('a', string='香吧香')

3.以上兩個錯誤的解決辦法:

  以上兩個錯誤是因為你的Python指令碼中包含了非ASCII字元,而Python預設使用ASCII編碼來解析指令碼。當Python遇到非ASCII字元時,它會丟擲這個錯誤。

  解決這個問題的方法是,需要在Python指令碼的最開始一行,加入一句 # -*- coding: utf-8 -*- 或者 #coding=UTF-8,這樣Python就會使用UTF-8編碼來解析指令碼。例如:

# -*- coding: utf-8 -*-
# or
#coding=UTF-8

  這兩行程式碼告訴Python,你的指令碼使用的是UTF-8編碼,所以Python就會使用UTF-8編碼來解析你的指令碼,而不是預設的ASCII編碼。

  需要注意的是,指令碼檔案必須真的使用UTF-8編碼,否則Python仍然會丟擲這個錯誤。可以使用文字編輯器的“儲存為”功能,選擇UTF-8編碼來儲存你的指令碼檔案。

 

相關文章