Python(実行とデバッグ)

2025年2月21日 (金)

[Python]ソースコードの文字コードを指定する

Pythonはソースコードが書かれたソースファイルの文字コードを、デフォルトではUTF-8としており、それ以外の文字コードで保存されている場合は、ソースファイルの読み込みに失敗する。ソースファイルの文字コードにUTF-8以外を使う場合は、ソースファイルの先頭に、以下の1行か2行を書けばよい。

その1

# coding=<encoding name>

その2

#!/usr/bin/python
# -*- coding: <encoding name> -*-

「<encoding name>」の箇所に文字コードを示す文字列を挿入する。Shift_JISであればcp932、shift_jisx0213などを書く。UTF-8であることを明示するのであればutf_8を指定する。

以下は、いずれもShift_JISで保存されたソースファイルcp932_1.pyとcp932_2.pyをそれぞれWindowsのコマンドプロンプトで実行した例。PythonはデフォルトをUTF-8としているため、最初の例では実行に失敗しているが、次の例のとおり文字コードを指定することで、問題なく実行できたことが分かる。

>type cp932_1.py
print('セナディア役の鈴木みのりさん、かわいい')
print('リフ役の瀬戸麻紗美さん、かわいい')
>type cp932_2.py
# coding=cp932
print('セナディア役の鈴木みのりさん、かわいい')
print('リフ役の瀬戸麻紗美さん、かわいい')
>python cp932_1.py
SyntaxError: Non-UTF-8 code starting with '\x83' in file ○○○\cp932_1.py on line 1, but no encoding declared; see https://python.org/dev/peps/pep-0263/ for details
>python cp932_2.py
セナディア役の鈴木みのりさん、かわいい
リフ役の瀬戸麻紗美さん、かわいい

文字コードの指定に使う文字列は、以下の一覧表が掲載されている。
https://docs.python.org/ja/3.13/library/codecs.html#standard-encodings

無料ブログはココログ

■■

■■■