perl での日本語ファイルの読み方

perlでエンコーディングがわからずに,日本語が書いてあるファイルを読む方法


use Encode::Guess qw(euc-jp shiftjis 7bit-jis);
...
my $cont;
my $msg = read_with_enc("filepath.txt", \$cont);
if (!deifned($cont)) { die $msg; }
# $cont にファイルの中身が入っている
...
sub read_with_enc {
  my ($f, $pcont) = @_;
  $$pcont = undef;
  open(F, $f) or return "Failed to open $f: $!";
  local $/ = undef;
  my $cont = <F>;
  my $enc = guess_encoding($cont, qw(euc-jp shiftjis 7bit-jis));
  ref($enc) or return "Failed to guess the encoding of $f: $enc";
  $$pcont= $enc->decode($cont);
  return "";
}

もちろん,ファイルが巨大ではないという前提である.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*