- 论坛徽章:
- 0
|
最近想把网站上的所有的内容编码由 gb -> utf-8。
本来是个简单的问题,写了以下 Perl 片段 就基本完成想法
- use Encode qw/from_to/;
- # 开始当前文件
- print '<ul><li>开始转换'.$mydir.'/'.$name.'....</li>';
- open(FH, $mydir.'/'.$name);
- my @data = <FH>;
- close(FH);
- my $data = join("", @data);
- if ($data =~ /charset\=gb2312/) { $data =~ s/charset\=gb2312/charset\=utf-8/s; }
- from_to($data, "gb2312", "utf8");
- open(FH, ">$outdir/$name");
- print FH $data;
- close(FH);
- print '<li>'.$outdir.'/'.$name.'convert success!</li></ul>';
- # 结束
复制代码
然而,发现原来网页中有部分GB编码的“繁体字”,比如“幫助,瞭解”等,这些字为GB扩展字符,这些用Encode模块 from_to($data, "gb2312", "utf8"); 转化后变成了乱码。
请教大家有什么好的办法来转化他们成为utf-8正常显示的字符? |
|