關於編碼問題,報錯:'gbk' codec can't encode character '\u3164' in position 0: illegal multibyte sequence

以前常常在寫入文件的時候遇到這種報錯,編碼

'gbk' codec can't encode character '\u3164' in position 0: illegal multibyte sequencecode

以前的解決方式是使用try...except語句把報錯的不寫入,這樣雖然能解決程序報錯中止的問題,可是會少寫入一些信息blog

網上各類解答都沒什麼用,試過了根本無法解決問題,因而今天用本身理解的方式嘗試,竟然成功了:utf-8

解決一樣是try...except語句,只不過多一個except寫入的方式it

try:
with open("test.txt","a") as f:
f.write(name+"\n")
except UnicodeEncodeError:
with open("test.txt","a") as f:
f.write(name.encode("gbk","ignore").decode("gbk")+"\n")
except Exception as e:
print(e)

  開始使用默認的編碼方式寫入,即"utf-8"io

當出現編碼異常的時候嘗試使用"gbk"編解碼,其中使用"ignore"忽略沒法編碼的特殊字符class

這樣既能夠寫入信息,又能夠不報錯,一箭雙鵰test

相關文章
相關標籤/搜索