より多くのエンコーディングをサポートするためにiconvを拡張する方法はありますか?

より多くのエンコーディングをサポートするためにiconvを拡張する方法はありますか?

このiconvコマンドは、ある文字エンコードから別の文字エンコードに変換するために使用されます。サポートされているすべてのエンコーディングのリストを表示するには、を使用できますiconv -l

iconvサポートされているエンコーディングを追加して拡張する方法はありますか?もしそうなら、そのような拡張がリリースされますか?それとも、コードを変更してiconv独自の開発プロセスを進めることは唯一の選択肢ですか?

答え1

実装がGNU Cライブラリで行われた場合は、iconvはい。拡張可能、いくつかの方法があります。

GNU Cライブラリでは、キャラクタセット処理はロード可能なモジュールに実装されています。このモジュールは(またはシステムが使用しているディレクトリに)見つけることができます.so。テキストファイル内のどの文字セットがどのモジュールによって処理されるか。要件に応じて、新しいモジュールおよび/または新しい定義を追加できます。どちらの場合もキャッシュを更新する必要があります。展開するために変更をCライブラリ自体に統合する必要はありません。/usr/lib/gconv/usr/lib/x86_64-linux-gnu/gconvlib/usr/lib/gconv/gconv-modulesiconvconfig

上記のマニュアルに詳細が記載されています。

その他の実装iconvまた、拡張可能です。 GNU Cライブラリを使用していない場合は、ローカルドキュメントを参照してください。

答え2

LinuxとLinuxを使用していると仮定すると、glibc1つ以上の共有可能でロード可能なgconvモジュールを作成して、異なるエンコーディングをサポートできます。

モジュールのデフォルト位置は64ビットシステムと32ビットシステムgconv用です。/usr/lib64/gconv/usr/lib/gconv

基本情報については、およびマンページを参照しiconv(1)てくださいiconv(3)iconvconfig(8)

バラよりhttps://www.gnu.org/software/libc/manual/html_node/glibc-iconv-Implementation.htmlもっと学ぶ。変換関数フレームワークの例が提供されています。glibc実際の例については、ソースコードを確認してください。

関連情報