关于编码问题,报错:'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 sequence
之前的解决方式是使用try...except语句把报错的不写入,这样虽然能解决程序报错停止的问题,但是会少写入一些信息
网上各种解答都没什么用,试过了根本没法解决问题,于是今天用自己理解的方式尝试,居然成功了:
解决同样是try...except语句,只不过多一个except写入的方式
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"
当出现编码异常的时候尝试使用"gbk"编解码,其中使用"ignore"忽略无法编码的特殊字符
这样既可以写入信息,又可以不报错,一举两得
查看更多文章和Python代码,请移步: 我自学Python的个人博客 我的Github