エラー辞典

UnicodeEncodeError

文字列を特定の文字コードに変換(エンコード)しようとして失敗したときに発生するエラーです。UnicodeDecodeErrorとは逆方向の変換で起こります。

原因

変換先の文字コードが対応していない文字(絵文字や特殊な記号など)を含む文字列を、無理に変換しようとすることが原因です。

エラーになるコード例

text = 'こんにちは😀'
encoded = text.encode('ascii')
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4

修正版

text = 'こんにちは😀'
encoded = text.encode('utf-8')
print(encoded)

よくある間違い

  • 日本語や絵文字を含む文字列を、英数字専用の'ascii'でエンコードしようとしてしまう
  • encode()の引数に指定する文字コードを、開発環境と実行環境で揃えていない

← エラー辞典に戻る