以前常常在写入文件的时候遇到这种报错,编码
'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