我有這樣的事情(它的工作原理):如何在perl中替換文件utf8中的字符?
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($_);
}
,但它不工作。
我有這樣的事情(它的工作原理):如何在perl中替換文件utf8中的字符?
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($_);
}
,但它不工作。
你應該得到的錯誤消息
Too late for "-CSA" option
這是什麼使程序讀取輸入文件爲UTF-8編碼。
相反,你需要把
use open qw(:std :utf8);
的while
循環,這不一樣-CS
在命令行,即之前設置STDIN
,STDOUT
和STDERR
處理以UTF-8編碼
你應該'嚴格使用'; – rightfold
'使用utf8'在這裏沒有任何用處:在代碼中不使用utf-8字符。 – choroba
你的意思是「不起作用」是什麼意思?這個對我有用。 – choroba