【Perl】轉換 big5 到 utf8

動機


剛好遇到直接用notepad++轉utf-8不完全
導致程式出錯

想法


後來發現是不正常的換行結尾導致
那麼就動手用perl把不正常的結尾清除,順便把檔案編碼轉一轉好了
這次一樣用個人最新寵兒 Perl 來搞定 ( 不給用c#,整間公司都linux好崩潰 )

解決方案


讀出一行轉一行,直到結束為止

動手做


首先要有perl 的 Encode
encode doc
安裝方式不講了,就perl make make install
直接上code
#!/usr/bin/perl
use Encode qw/encode decode/;
my $input = './class.java';
my $output = './class.java';
open ($fh,$input);
open ($fo,">".$output);
while ($row = <$fh>){
    $row = &rtrim($row);
    $row = encode("utf-8",decode("big5",$row));
    print $fo $row."\n";
}
close($fh);
close($fo);

sub ltrim { my $s = shift; $s =~ s/^\s+//; return $s };
sub rtrim { my $s = shift; $s =~ s/\s+$//; return $s };
sub trim { my $s = shift; $s =~ s/^\s+|\s+$//g; return $s };
一樣請出好用的 trim 三兄弟
搞定!

留言