Perlについての質問箱 39箱目
at TECH
467:デフォルトの名無しさん
09/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 に変換すること。
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5382日前に更新/164 KB
担当:undef