如何在perl中替换文件utf8中的字符?

时间:2014-06-07 15:33:55

标签: perl unicode

我有类似的东西(它有效):

perl -C -MText::Unidecode -n -i -e'print unidecode( $_)' unicode_text.txt

现在我想在脚本中做同样的事情:

#!/usr/bin/perl -w -CSA

use utf8;
use Text::Unidecode;


while(<>)
{
    print unidecode($_);
}

但它不起作用。

1 个答案:

答案 0 :(得分:2)

您应该收到错误消息

Too late for "-CSA" option

这是使程序将输入文件读为UTF-8编码的原因。

相反,你需要把

use open qw( :std :utf8 );

while循环之前,与命令行上的-CS相同,即将STDINSTDOUTSTDERR句柄设置为UTF-8编码