perl スクリプトは EUC-JP で書くべきか? UTF-8 で書くべきか?

2011年9月29日木曜日

perl 文字コード

t f B! P L

結論から言えば、専用のアプリケーションを新規で書くなら UTF-8、既存環境や不特定多数の環境を対象とした汎用的なスクリプトを書くなら EUC-JP ですね。

手元の環境(perl 5.8.4)の $ perldoc utf8 を見てみると、以下の文があります。

in future we would like to standardize on the UTF-8 encoding for source text

今後は UTF-8 が標準になっていくのは間違いないでしょう。
どうしても他の文字コードを使わなければならない理由が無ければ、 特定の環境でのみ動作すればよい新規アプリケーションの作成は UTF-8 一択です。

UTF-8 が perl で完全にサポートされたのはバージョン 5.8 からで、それは 2002年7月にリリースされています。 それ以前の perl では Encode.pm も同梱されておらず、UTF-8 を満足に扱うことができません。 ですが、その世代の古い perl しか入っていないサーバもまだ現役でたくさん存在しているので、利用者の環境を特定しない汎用的なスクリプトにはまだまだ UTF-8 は使えないのです。 (例えば Solaris 9 の perl は 5.6 ですので、Solaris 9 と 10 が混在しているような環境では UTF-8 で運用スクリプトを書くわけにはいきません)
UTF-8 以外で、perl で日本語を使うなら、EUC-JP 一択です。 その理由などは大崎さんの Perlメモ が詳しいのでそちらをどうぞ。

このブログを検索

ブログ アーカイブ

QooQ