都市名のリストを含むファイルを処理しようとしています。私の目標は、標準の ASCII に音訳された都市名のリストを出力することです。どういうわけか、私はただ問題に遭遇し続けます。私は Perl で iConv と Text::Unidecode ライブラリの両方をいじってきましたが、どちらも失敗しています。
以下は、cities.txt という名前のファイル内の都市名のサンプル リストです。
Måløv
Magtenbølle
Zvonarëvka
Denver
Zvëzdka
New York
これを実行するiconv
と、次が返されます。
iconv -fUTF-8 -tASCII//TRANSLIT//IGNORE cities.txt
Mal?v
Magtenb?lle
Zvonarevka
Denver
Zvezdka
New York
これは一部の非 ASCII 文字ではうまく機能しますが、特に文字では失敗しますø
。私のリストには数千のエントリがあります。小さなサンプル セットよりも大きな結果を実際に調査したことはありませんが、他の失敗もあると確信しています。
私のperlの試みは次のようになります:
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use Text::Unidecode;
while (<>) {
print unidecode $_;
}
そこからの出力は次のようになります。
MAY=lA,v
MagtenbA,lle
ZvonarA<<vka
Denver
ZvA<<zdka
New York
奇妙なことに、直接ステートメントを使用すると Perl は機能します。例えば
...
print unidecode("Måløv");
期待どおり「Malov」が出力されます。
私は何を間違っていますか?