日本語テキストファイルの操作 - binmode()すでに開かれているファイルハンドル(STDIN/STDOUTを含む)にPerlIOレイヤを指定する。ファイルハンドルレベルでuft8フラグを付けたり落としたり、文字コードを変換する。 use UTF8なスクリプト内で標準入力(出力)を使うuse utf8; binmode STDOUT, ':utf8'; # 'encoding(utf8)'でもよい print "あ 京\n"; ↑binmodeを使わなければ「Wide character」のシステムエラーが発生する。 use utf8; binmode STDIN, ':utf8'; while (<>) { chomp; print "[$_]\n"; } use utf8なスクリプト内で、SJISのテキストファイルを読取り、標準出力へ表示するuse utf8; binmode STDOUT, ':encoding(utf8)'; open my $fh, '<', shift; binmode $fh, ':encoding(sjis)'; while ($row = <$fh>) { print $row; } close $fh; |
|