5

私のソフトウェアを登録した人の名前を送信するためにサードパーティから呼び出されている Perl スクリプトがあります。これらの当事者の 1 つは名前を UTF-8 でエンコードしているので、それに応じてスクリプトを調整し、Encode::decode_utf8(...) を使用して UTF-8 を ASCII にデコードしました。

これは通常は問題なく機能しますが、約 6 か月ごとに名前の 1 つにキリル文字、ギリシャ文字、またはルーマニア文字が含まれているため、名前をデコードすると、"ПодражанÑкаÑ" などの文字化けが発生します。登録コードを発行するために、顧客にフォローアップして、彼の名前の「ラテン文字バージョン」を尋ねなければなりません。

では、そのような文字があるかどうかを検出し、必要に応じて最も近い ASCII 表現に自動的に変換できる Perl モジュールはありますか?

Lingua::Cyrillic::Translit::ICAO と Lingua::DetectCharset を使用してキリル文字を処理できるようですが、他の文字セットでも機能するものが望ましいと思います。

4

4 に答える 4

10

これにはText::Unidecodeを使用できると思います。まさにそれがやろうとしていることです。

于 2009-03-12T14:21:35.107 に答える
0

キリル文字を取得した場合、多くの文字に「最も近い ASCII 表現」はありません。

于 2009-03-12T14:25:02.650 に答える