【Python】文字化けを防ぐ!コーディング行(文字コード)の指定方法
Pythonでプログラムを書く際、コードの中に日本語(コメントや文字列)を含めると、実行環境によっては「文字化け」やエラーが発生することがあります。これを防ぐために、ファイルの先頭で「どの文字コードで書かれているか」を宣言するのがマジックコメントです。
1. 文法:マジックコメントの書き方
ファイルの1行目(または2行目)に以下の形式で記述します。Pythonはこの記述を見て、ファイル全体の文字コードを判別します。
# -- coding: エンコーディング名 --
[ 主な指定内容 ]
・utf-8:世界標準の文字コード(推奨)
・shift_jis:Windowsの日本語環境で古くから使われる形式
・euc-jp:Unix系OSで使われることがある形式
[ 主な指定内容 ]
・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
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