UTF-16でエンコードされたテキストファイルの内容を取得できないのはなぜですか?

UTF-16でエンコードされたテキストファイルの内容を取得できないのはなぜですか?

私が知っている限り、例えばcatfishとgnome-search-utilsはUTF-8でエンコードされたファイルの内容を検索できます。テキストファイルから単語や数字を検索するには、まずiconvを介してUTF-8に変換する必要があります。

ファイルが既知の場合、geditやマウスパッドなどのテキストエディタはUTF-16を簡単に処理できます。

LinuxディストリビューションにUTF-16でエンコードされたtxtファイルを処理するための検索ツール(GUIまたはコマンドライン)がないのはなぜですか?

私はXubuntuにいます。

ベストアンサー1

UTF-16(またはUCS-2)は、C標準ライブラリおよびPOSIX ABIで使用されるnullで終わる文字列にはあまり適していません。たとえば、コマンドライン引数はNULで終了し(値が0のバイト)、値が256未満のすべてのUTF-16文字には0バイトが含まれているため、通常の英語文字で構成される文字列はUTF-16として表示できません。コマンドラインパラメータに16があります。

これは、最終的にユーティリティが別の形式(UTF-8など)で入力し、UTF-16に変換する必要があること、または異なる方法で見解を得る必要があることを意味します。最初のオプションを使用するには、これらのすべてのユーティリティに変換用のコードを含める(またはリンクする)必要がありますが、2番目のオプションを使用すると、これらのプログラムを他のユーティリティとインタフェースするのがやや困難になります。

これらの難しさとUTF-8がより古いバージョンとの互換性を持っているという事実を考えると、UTF-16を使用し、そのためのツールを作成するためのインセンティブを持っている人はほとんどいないと思います。

おすすめ記事