UTF-8のファイルがLatin1に文字化けしてたら「Encode::DoubleEncodedUTF8」

よりによって、このChangeLogをエディタで開いたら文字化けしていました。
文字化けの具合を見ると、定番のダブルエンコード(二重エンコード)で、latin1になっていました。

そんなわけで、miyagawaさんのPerlモジュール「Encode::DoubleEncodedUTF8」で文字化けを解消しました。


以下はサンプルプログラム。

- fixdoubleencoded.pl
#!/usr/bin/perl

use strict;
use warnings;

use Encode;
use Encode::DoubleEncodedUTF8;

while (<>) {
 my $line = $_;
 my $fixed = decode("utf-8-de", $line); # 
 print $fixed;
}


使い方は非常にシンプルです。
ChangeLogの二重エンコードを直すために、以下のようなコマンドを実行しました。

$ perl ./fixdoubleencoded.pl < ./ChangeLog > fixed_ChangeLog


無事に直って良かったです。

miyagawa++。


投稿者:としのり  日時:23:59:59 | コメント | トラックバック |
blog comments powered by Disqus