Pythonスクリプトを実行すると、以下のようなエラーメッセージに遭遇することがあります。
SyntaxError: Non-ASCII character '\xe3' in file sample.py on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
本記事では、上記エラーメッセージの原因と対処方法について紹介します。
エラーの原因
このエラーは、Python2において、スクリプトの先頭でエンコーディング宣言していない、かつ、ファイル内に日本語が記述されている場合に発生します。
Python 2では、デフォルトのソースファイルのエンコーディングはASCIIです。このため、日本語の文字(ASCIIでない文字)を扱う場合、ファイルの先頭にUTF-8など、日本語を扱える文字コードのエンコーディング宣言を記述する必要があります。
エラーの回避方法
ファイルの先頭にエンコーディング宣言を記述
このスクリプトファイルがUTF-8で書かれていることを示す宣言を記述します。
#coding: UTF-8
あとは、スクリプトファイルを保存する際にもUTF-8を選択してください。上記宣言と、ファイル保存時のエンコーディングが異なる場合、また別のエラーが発生してしまいます。
まとめ
本記事では、Pythonで発生するエラー「SyntaxError: Non-ASCII character ~」の原因と回避方法について紹介しました。