このiconv
コマンドは、ある文字エンコードから別の文字エンコードに変換するために使用されます。サポートされているすべてのエンコーディングのリストを表示するには、を使用できますiconv -l
。
iconv
サポートされているエンコーディングを追加して拡張する方法はありますか?もしそうなら、そのような拡張がリリースされますか?それとも、コードを変更してiconv
独自の開発プロセスを進めることは唯一の選択肢ですか?
答え1
実装がGNU Cライブラリで行われた場合は、iconv
はい。拡張可能、いくつかの方法があります。
GNU Cライブラリでは、キャラクタセット処理はロード可能なモジュールに実装されています。このモジュールは(またはシステムが使用しているディレクトリに)見つけることができます.so
。テキストファイル内のどの文字セットがどのモジュールによって処理されるか。要件に応じて、新しいモジュールおよび/または新しい定義を追加できます。どちらの場合もキャッシュを更新する必要があります。展開するために変更をCライブラリ自体に統合する必要はありません。/usr/lib/gconv
/usr/lib/x86_64-linux-gnu/gconv
lib
/usr/lib/gconv/gconv-modules
iconvconfig
上記のマニュアルに詳細が記載されています。
その他の実装iconv
また、拡張可能です。 GNU Cライブラリを使用していない場合は、ローカルドキュメントを参照してください。
答え2
LinuxとLinuxを使用していると仮定すると、glibc
1つ以上の共有可能でロード可能な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
実際の例については、ソースコードを確認してください。