- 467 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 17:30:30 ]
- >>4 に書いてあるとおり、教科書的な書き方をすれば、こうなる。
use utf8; use open IO => ":encoding(cp932)"; binmode STDIN => ":encoding(cp932)"; binmode STDOUT => ":encoding(cp932)"; binmode STDERR => ":encoding(cp932)"; use Encode; opendir dir, encode('cp932','.'); @files = readdir dir; for (@files) { $_ = decode('cp932', $_) } for $file (@files) { if (-d encode('cp932',$file)) {print "$file is directory.\n"} else {print "$file is file.\n"} } ポイント ・OS に渡す文字列(ファイル名,dos コマンドのオプションなど)は、utf8 → cp932 に変換すること。 ・逆に OS からもらう文字列(readdirなど)は cp932 → utf8 に変換すること。
|

|