3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Pythonのエラー 'shift_jis' codec can't encode character '\u6c2e' の解決方法

Posted at

#はじめに
 備忘録のために書くので、余計なことは書きません。Pythonでテキストファイルにある文字を別のテキストファイルに移す処理を書いていたら

'shift_jis' codec can't encode character '\u6c2e' 

というエラーが返されました。どうやら文字のエンコードのエラーらしいです(勉強不足です)
特定の文字だけをreplaceして消す方法もあるようなのですが、種類が多すぎて面倒です。

#解決法
 対象のPythonコードの初めにこれを記述してください。

import codecs
codecs.register_error('none', lambda e: ('?hoge?', e.end))

そして、ファイルを開く処理のopen関数を以下の様に変更してください。

f = open('file.txt', 'w', encoding='cp932', errors='none')

そうすれば、エンコードできない文字だけ?hoge?と置き換わります。消したい場合は'?hoge?'を''にすればOKです。

#参考サイト
 まじで助かりました。ベストアンサーのkatsukoさん、ありがとうございます。

・(python3でshift_jisのテキストファイル保存でUnicodeEncodeError)[https://teratail.com/questions/38949]

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?