我有一個Unicode字符串,不知道它的編碼是什麼。當這個字符串被Perl程序讀取時,Perl會使用默認編碼嗎?如果是這樣,我怎麼知道它是什麼?我如何猜測Perl中的字符串編碼?
我想擺脫輸入中的非ASCII字符。我發現這個在一些論壇上會做到這一點
my $line = encode('ascii', normalize('KD', $myutf), sub {$_[0] = ''});
當沒有指定輸入編碼時,這將如何工作?是否應該像這樣指定?
my $line = encode('ascii', normalize('KD', decode($myutf, 'input-encoding'), sub {$_[0] = ''});
糾正我,如果我錯了,但我認爲統一的整體的一點是,它沒有一個「編碼」 - 一切都在那裏。 – 2009-12-28 17:55:06
您沒有Unicode字符串。你有一個充滿字節的文件,代表一些編碼中的Unicode字符串。如果您不知道文件的編碼,那麼請在文件開始處檢查字節順序標記。如果沒有物料清單,那你的運氣不好。 – 2009-12-28 17:57:07
看起來你至少要問兩個單獨的問題(第1段和第2段)。 – Amnon 2009-12-28 17:57:26