Python の文字コード指定が気に入らない

Python は ASCII 以外を扱う場合

# coding: utf-8

などというおまじないをソースコードの先頭あたりに書かなければならないんだけど、これがスマートじゃない。と感じる。

ファイルの内容はファイルの文字コードに依存してはならないからだ。同じ内容のファイルを Shift_JISUTF-8 で保存した場合、バイト配列的には異なるけど、内容は一緒。

だけど、Shift_JIS の場合と UTF-8 の場合でおまじないを変えなきゃならない、というのが Python の仕様なわけだ。

実行時に実行環境が文字コードを自動認識せずに、教えてもらわなければならないのであれば、Ruby のように実行引数として渡してもらうようにすべき。







と思っていた時期が俺にもありました。

最近の Python は、UTF-8 の BOM を認識し、この場合に限りおまじないを書かなくてもよいのである。

ただ、UTF-8 に BOM をわざわざつけなきゃならない、というのがそれはそれで面倒くさい。