关于编码问题,报错:'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

相关文章
相关标签/搜索