処理系の違いによる文字化けの簡単な対処

perlで処理をする場合、

  1. 外部ソースの文字コード
  2. perlスクリプト内の文字列リテラル(スクリプト文字コード)
  3. 出力を表示する処理系の文字コード

のそれぞれをチェックする必要がある。

Windowsならテキストファイルは特に指定しない限りShiftJIS
MacOSならUTF8,Linux等はEUCかUTF8。

以上を気をつけておく必要があるのだ。

めんどくさいと思うならば、
スクリプト文字コードEUCにして
入力された文字列をEUCに変換して処理した後、適当な文字コードに変換して出力する
というのが良いかと思われる。
ただ、機種依存文字のようなEUCに存在しないものは使えない。。

[参考]
Shift_JISに関する文字ばけ
http://ja.wikipedia.org/wiki/%E3%83%80%E3%83%A1%E6%96%87%E5%AD%97
Perl 5.8.x Unicode関連
http://www.rwds.net/kuroita/program/Perl_unicode.html
Wikipedia 波ダッシュ
http://ja.wikipedia.org/wiki/%E6%B3%A2%E3%83%80%E3%83%83%E3%82%B7%E3%83%A5