【Python】SyntaxError: Non-ASCII character ~

Python

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を選択してください。上記宣言と、ファイル保存時のエンコーディングが異なる場合、また別のエラーが発生してしまいます。

タイトルとURLをコピーしました