UTF-8ファイルをASCIIに変換する(最善の努力)

UTF-8ファイルをASCIIに変換する(最善の努力)

複数の言語のテキストを含むUTF-8形式のファイルがあります。多くの人の名前があります。これをASCIIに変換し、結果ができるだけ適切に見えるようにする必要があります。

より広いエンコーディングをより狭いエンコーディングに変換する方法はいくつかあります。最も簡単な変換は、ASCII以外のすべての文字を「_」などの一部のプレースホルダに置き換えることです。ファイルの言語を知っていれば、ローマ字表記などの他の可能性があります。

UTF-8からASCIIへの適切な(最善の努力)変換を提供できるUnixツールまたはプログラミング言語ライブラリはUnixで利用可能ですか?

ほとんどのテキストはヨーロッパのラテン語です。

ベストアンサー1

これは次のような場合に便利です。

iconv -f utf-8 -t ascii//TRANSLIT

echo ĥéĺłœ π | iconv -f utf-8 -t ascii//TRANSLIT返品helloe ?。変換方法を知らない文字はiconv疑問符で置き換えられます。

iconvPOSIXですが、すべてのシステムにこのオプションがあるかどうかはわかりませんTRANSLIT。それはLinuxで私に効果的です。また、このIGNOREオプションは、ターゲット文字セットで表現できない文字を自動的に削除します(参考資料を参照man iconv_open)。

さらに悪いことは、POSIX互換オプションを使用することですtr。このコマンドは、ASCII以外のすべてのコードポイントを疑問符で置き換えます。 UTF-8テキストを一度に1バイトずつ読みます。 「E」は、アクセント結合または事前構成文字を使用して符号化されるかどうかに応じてE?置き換えることができる。?

echo café äëïöü | tr -d '\200-\277' | tr '\300-\377' '[?*]'

例では、caf? ?????事前設定された文字を使用して返します。

おすすめ記事