ツイート
シェア
LINEで送る
B! はてぶでブックマーク
Pocketでブックマーク
RSSフィード

Python,「SyntaxError: Non-ASCII character」日本語対応の方法

python image
イラストダウンロードサイト【イラストAC】
の画像をもとに加工しています。

pythonをLinuxで実行すると、SyntaxError: Non-ASCII character ... エラーが発生することがあります。

これは日本語対応ができていないのが原因です。.pyファイルの先頭行に1行追加するだけで解決します。

windowsで作成したpythonファイルを、Linuxへアップロードして実行したら、次のようなエラーが発生しました。

SyntaxError: Non-ASCII character '\xe3' in file /●●●/owner.py on line 15, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
python2.7.5(CentOSのプレインストール版)
CentOSCentOS Linux release 7.3.1611 (Core)
実行環境

日本語に対応していないのが原因

日本語など英語以外の言語や絵文字などの記号の文字列が、コメントや標準出力文字列に含まれるとエラーになります。つまり、.pyファイル内に英語以外の言語が含まれると発生します。

UTF-8で作成した内容でも同じです。PythonはデフォルトでASCIIコードで認識するようになっているから。

さっきは英語以外と言いましたが、正確には『ASCIIコード以外』です。

ASCIIコードは、

American Standard Code for Information Interchange

のことで、半角アルファベットと一部の半角記号、DELなどその他半角コードの32文字です。

詳しくはこちらのASCIIコード一覧表を参照ください。

1行追加してサクッと修正

.pyファイルの先頭行に次を追加します。

# coding:utf-8

プログラムが複数のファイルで構成されているとき、すべての.pyファイルに書きます。

bashのファイルを作成するときに、

#!/bin/sh

を書くような感覚で必ずつけるものと習慣づけておくと、余計なエラーに時間を取られることはないでしょう。

pythonでASCIIコード以外を使うときは、文字コードの指定が必要。

まとめ

phpやrubyのように、どこかに環境設定で文字コードが指定できないか探してみましたが、pythonにはないようです。

いまは、あたりまえにeclipseなど統合開発環境(IDE)上でソースコードを書いて実行まで行います。

このような環境で実行するとき、IDE内部で自動的に修正して実行している可能性が高く、エラーが発生しないことがあります。

(設定画面で文字コードを指定することが多い。)

実際にぼくの場合、eclipse上では問題なく動いたのにエラーが発生しました。

自動化が進んで便利になると、こういう初歩的なことで時間に取られることがあるんだよなぁ。

楽なものにはあとでとばっちりを食らうことがあることを改めて感じました。

前の投稿
PythonでCSS, JavaScript, HTMLの圧縮ツールを作る
Python, MySQL / MariaDBに接続する。
次の投稿

最近ITカテゴリでよく読まれている記事です。

domain image

ドメイン取得の意味が分からない人へ。王道の方法を紹介します。

ドメインの登録業者を選ぶのに悩む必要はないです。サイトを簡単に早く公開するには全くいらないことで、むしろ邪魔です。『お名前.com』というサービスは必ず耳にします。そのお名前.comのメリットとデメリットと一緒に、ドメインの意味が分からない人が一番失敗しないドメインの取得方法を紹介します。

tadtadya.com
コメントを残す

*