作者: Bruce.
日時: 2004/7/01(20:40)
Bruce. です。

>  Perl5.8をシフトJIS版JPerlとして使う方法の検討を始めましたけど、付録的
> な取り扱いになりそうですね。意外と障害が多い。環境変数にShiftJIS文字があ
> ると読めないですね。use encoding "shiftjis"下ではですけど。環境変数を読
> む前に、no encoding;を宣言したりする必要がある(変則的、スマートでない)。

陽に decode してやればいいみたいですよ。

  d:\home>set foo=表示

  d:\home>perl -e "print $ENV{foo}"
  表示

  d:\home>perl -MEncode -Mencoding=sjis -e "print decode('sjis', $ENV{foo})"
  表示

  d:\home>perl -Mencoding=sjis -e "print $ENV{foo}"
  "\x{0095}" does not map to shiftjis.
  "\x{008e}" does not map to shiftjis.
  "\x{00a6}" does not map to shiftjis.
  \x{0095}\\x{008e}\x{00a6}

一手間かかりますけど。
無指定のときにちゃんと表示できるんですね。エスケープが効くかと思ったんだけど。

-- 
木村浩一
  I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
  mail kbk@...
  web  www.kt.rim.or.jp/~kbk/