之前写了个爬虫获取一些公司公开的信息,但是在往TXT文件写入的时候偶尔会报错'gbk' codec can't encode character '\xXX' in position XX。
在网上查了许久都是说因为print()输出的缺陷,但是自己测试之后发现并非如此。我在python3环境中,使用的开发程序是Pycharm,这应该不会出现那种错误才对,于是我就随便写了两行代码来测试到底是因为什么报错,代码如下:
f = open(r"D:\test.txt")
a = '\ue863'
print(a)
f.write(a)
f.close()
运行了这段代码后,我发现报错的实际上是f.write这个方法,于是明白了这是因为TXT文件的默认编码是GBK而不是Unicode。于是便做了一个小小的改动,代码如下:
import codecs
f = codecs.open('D:\\test.txt','w','utf-8')
a = '\ue863'
print(a)
f.write(a)
f.close()
再次运行果然没有问题了,所以在临时保存文件时应注意临时文件也要设置好编码。