日本語テキストファイルの操作 - 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;

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2011-08-08 (月) 06:21:38 (2631d)