perl print 中的乱码主要有两方面的原因,一是文件的编码格式,二是终端的编码格式
终端环境是UTF-8,文本也是UTF-8,那么如下脚本可正常输出:
use strict;
use encoding "utf-8";
open(FH, "<:utf8", "abc.txt") or die $!;
while(<FH>) {
print;
}
close FH;
终端环境是UTF-8,文本也是UTF-8,需要改成下面这样
use strict;
use Encode;
open(FH, "<:utf8", "abc.txt") or die $!;
while(<FH>) {
print encode("gb2312",$_);
}
close FH;