乱码问题,总是个问题。

在上次为了用Perl读Excel文件,但是文件名是中文,而且内容也包括中文,结果读出来的是乱码,为了演示那个例子,当时创建了一个不包括中文的xls文件。但中文乱码问题一直没有去解决,虽然我知道这对于神奇的Perl来说,很容易。

下面就来初步的看看关于这个问题的解决方法。

1.全局统一编码

use utf8;

use open FD,":encodeing(utf8)",":std"; #FD为文件句柄,标准输入使用默认(gbk)

2.特别对待

open FD,"file.txt";

bimode(FD,":encoding(gbk)");

3.小心谨慎

use Encode qw/encode/;

$file = "我的2010年工作总结.txt"; #对待文件名是中文的情况

$file = encode("gbk", $file);

open $file, "<:encoding(gbk)", $file or die; #读文件时使用gbk编码

4.使用时指定

open FD, "<:encoding(gbk)", "file.txt" or die; # 读文件时

open FD, ">:encoding(utf8)", "file.txt" or die; # 写文件时

 

我觉得第一种方式最为 潇洒,当然你得确认你的文件编码是什么。大部分情况 下是utf8或者gbk或者big5。