我有类似的东西(它有效):
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($_);
}
但它不起作用。
答案 0 :(得分:2)
您应该收到错误消息
Too late for "-CSA" option
这是使程序将输入文件读为UTF-8编码的原因。
相反,你需要把
use open qw( :std :utf8 );
在while
循环之前,与命令行上的-CS
相同,即将STDIN
,STDOUT
和STDERR
句柄设置为UTF-8编码