前提
日本語ファイルをデータベースに格納する為
strawberry perl でコンバーターを作成しています。
実現したいこと
都道府県ごとにファイルを分割するのが目的です。
読み込んだファイルの住所のフィールドが●●で始まっていたら、出力ファイルへ、が希望する動作です。
発生している問題・エラーメッセージ
マッチするはずの東京都のレコードはスルーされ
出力されないまま終了します。
elseでprintすると全読み込み行が出力されます。
該当のソースコード
#!/usr/bin/perl
use utf8;
#binmode STDIN, ':encoding(cp932)';
#binmode STDOUT, ':encoding(cp932)';
#binmode STDERR, ':encoding(cp932)';
#binmode STDIN, ':utf-8';
#binmode STDOUT, ':utf-8';
#binmode STDERR, ':utf-8';
use Encode qw/encode/;
our $file = 'data.csv';
#our $rslt = 'c:\Strawberry\data_tokyo.csv';
open(our $in, "<", $file) or die "Cannot open input: $file: $!";
#open(our $out, ">", $rslt) or die "Cannot open output: $rslt: $!";
while(our $str = readline $in){
chomp $str;
$str = encode('utf8', $str);
#$str = decode('utf-8', $str);
our ($pref) = (split(/,/, $str))[8];
if($pref =~ /^東京/){
# Encode::from_to( $str, 'utf-8', 'sjis' );
print "$str\n";
}
}
close $in or die qw/Can't close file "$in": $!/;
#close $out or die qw/Can't close file "$out": $!/;
exit;
試したこと
perlスクリプトはutf8 読み込みファイルはshift-jisです
日本語の判定に失敗しているので苦手な文字コード云々か、とネット上の
サンプルを色々試した残骸がコメントアウト部分です
0 コメント