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

  • -

    シェア
  • ---

    LINEで送る
  • -

    はてなブックマーク
    ブックマーク
  • -

    pocket
  • -

    rss
他言語サイト
us us
python image

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
  • pythonのバージョンは2.7.5(CentOSのプレインストール版)
  • CentOSのバージョンは"CentOS Linux release 7.3.1611 (Core)"

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

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

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

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

ASCIIコードは、

ASCII: American Standard Code for Information Interchange

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

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

対応方法

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

# coding:utf-8

プログラムが複数のファイルで構成されている場合、すべての.pyファイルに記述する必要があるので気を付けましょう。

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

#!/bin/sh

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

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

最後に一言

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

現在は、当たり前のようにeclipseなど統合開発環境(IDE)上でソースコードを書いて実行まで行います。このような環境で実行する場合、IDE内部で自動的に修正して実行している可能性が高く、エラーが発生しないことがあります。(設定画面で文字コードを指定することが多い。)

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

自動化が進んで便利になると、こういう初歩的なことで時間に取られることがあるんだよなぁ。楽なものにはあとでとばっちりを食らうことがあることを改めて感じました。

 

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

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

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

tadtadya.com

_

SNSでも記事を配信しています。
コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

この記事を気に入ったらぜひシェアも!!