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

  • ---

    LINEで送る
  • -

    ブックマーク
  • -

    pocket
  • -

    rss
他言語サイト
en_US en_US
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
  • python: 2.7.5(CentOSのプレインストール版)
  • CentOS: CentOS 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上では問題なく動いたのにエラーが発生しました。

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

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

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

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

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

tadtadya.com

_

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

*

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

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