时间:2010-07-23 16:20:36

标签: perl unicode

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

答案 2 :(得分:1)

这是我发现的工作,至少使用perl 5.10.1:

输入:

open(my $f_in, '<:raw:perlio:via(File::BOM):crlf', $file);

输出:

open(my $f_out, '>:raw:perlio:encoding(UTF-16LE):crlf:via(File::BOM)', $file);

它们透明地处理BOM,CRLF转换和UTF-16LE编码/解码。

请注意,根据下面的perlmonks帖子,如果尝试使用binmode()而不是open()进行指定,则需要额外的“:pop”:

binmode $f_out, ':raw:pop:perlio:encoding(UTF-16LE):crlf';

我的经验证实了这一点。然而,我无法使用“:via(File :: BOM)”层来处理它。

参考文献:

http://www.perlmonks.org/?node_id=608532

http://metacpan.org/pod/File::BOM