PYTHON 3解決'gbk'codec can't encode character'xXX'in position XX

744 ワード

以前は爬虫類を書いていくつかの会社が公開した情報を取得しましたが、TXTファイルに書き込むときに「gbk」codec can't encode character'xXX'in position XX」と間違えることがあります.
インターネットで長い間調べていたのはprint()出力の欠陥のためだが、自分でテストしたところそうではないことが分かった.python 3環境で使用している開発プログラムはPycharmで、そのようなエラーは起こらないはずなので、私は勝手に2行のコードを書いて何が間違っているのかをテストしました.コードは以下の通りです.
f = open(r"D:\test.txt")
a = '\ue863'
print(a)
f.write(a)
f.close()
このコードを実行した後、エラーを報告したのは実際にf.writeという方法であることに気づき、TXTファイルのデフォルト符号化がUnicodeではなくGBKであるためであることが分かった.そこで小さな変更を行いました.コードは以下の通りです.
import codecs
f = codecs.open('D:\\test.txt','w','utf-8')
a = '\ue863'
print(a)
f.write(a)
f.close()
再実行はやはり問題ありませんので、ファイルを一時保存するときは、一時ファイルにもエンコードを設定することに注意してください.