忍者ブログ
統計、機械学習、AIを学んでいきたいと思います。 お役に立てば幸いです。

【Python】文字化けを防ぐ!コーディング行(文字コード)の指定方法

Pythonでプログラムを書く際、コードの中に日本語(コメントや文字列)を含めると、実行環境によっては「文字化け」やエラーが発生することがあります。これを防ぐために、ファイルの先頭で「どの文字コードで書かれているか」を宣言するのがマジックコメントです。

1. 文法:マジックコメントの書き方

ファイルの1行目(または2行目)に以下の形式で記述します。Pythonはこの記述を見て、ファイル全体の文字コードを判別します。

# -- coding: エンコーディング名 --

[ 主な指定内容 ]
utf-8:世界標準の文字コード(推奨)
shift_jis:Windowsの日本語環境で古くから使われる形式
euc-jp:Unix系OSで使われることがある形式

2. Pythonサンプルプログラム

日本語を正しく扱うための標準的な記述例です。現在では、特別な理由がない限り utf-8 を使用するのが一般的です。

-- coding: utf-8 --
def main():
# 日本語のメッセージを変数に代入
message = 'hello'

print("プログラムを実行します。")
print(message)
if name == "main":
main()

3. 実行結果

プログラムを実行します。
hello

4. ステップアップ:なぜこれが必要なの?

Python 3系ではデフォルトの文字コードが UTF-8 に設定されていますが、古いエディタや特定のサーバー環境では、この一行がないと日本語が正しく解釈されず、SyntaxError を吐いて止まってしまうことがあります。

  • エラー防止:多人数で開発する際、環境の違いによるエラーを未然に防げます。
  • 明示性:どの文字コードで保存すべきファイルなのか、開発者に一目で伝わります。

5. Python 2 と Python 3 の違い

バージョンの違いによって、この指定の重要度が異なります。

バージョンデフォルト設定日本語の扱い
Python 3.x UTF-8 指定なしでも動くことが多いが、慣習として書くのが安全。
Python 2.x ASCII 必須。これがないと日本語を含むコードは即エラー。

6. まとめ

# -- coding: utf-8 --」は、いわばPythonファイルにおける「おまじない」のようなものです。最近のエディタでは自動で設定されることも多いですが、基礎として理解しておくことで、いざ日本語が化けた時のトラブルシューティングに役立ちます。常に1行目に書く癖をつけておきましょう!


PR