+ -
当前位置:首页 → 问答吧 → 怎样把文件的格式从gb2312转换为utf8格式?

怎样把文件的格式从gb2312转换为utf8格式?

时间:2011-01-10

来源:互联网

我需要把整个文件从gb2312编码转成utf8编码。
搜索本版,得到命令是:
  1. perl -MEncode -ne 'print encode("utf8",decode("gb2312",$_))' gbk.txt > utf8.txt
复制代码
请问怎么写在perl程序里呢?

还是只能按行转编码呢?
  1. while($line=<FILE>)
  2. {
  3. $line=encode ("utf-8",decode("gbk",$line));#转成utf-8编码
  4. ……
  5. open TXT, ">>utf8.txt" ;
复制代码

作者: kookies   发布时间: 2011-01-10

perldoc -v "$/"

通过 local $/; 可以直接读取整个文件,还有个 Perl6::Slurp 模块可以做同样的事

作者: zhlong8   发布时间: 2011-01-10



QUOTE:
perldoc -v "$/"

通过 local $/; 可以直接读取整个文件,还有个 Perl6::Slurp 模块可以做同样的事
zhlong8 发表于 2011-01-10 10:59




    不好意思,不明白

作者: kookies   发布时间: 2011-01-10



QUOTE:
不好意思,不明白
kookies 发表于 2011-01-10 11:15




    你不就是想一次读入整个文件,然后转码?
  1. open my $f, '<', 't.txt' or die $!;

  2. local $/;

  3. my $s = <$f>;
复制代码
这里 $s 就是整个文件的内容了, $/ 决定了 <> 读入的时候行的定义,如果为 undef 则读入整个文件

作者: zhlong8   发布时间: 2011-01-10

  1. `perl -MEncode -ne 'print encode("utf8",decode("gb2312",\$_))' gbk.txt > utf8.txt`;
复制代码
知道了$前面要加\

作者: kookies   发布时间: 2011-01-10