日本語処理全般

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