iconv_open -
文字セット変換のためのディスクリプターを割り当てる
#include <iconv.h>
iconv_t iconv_open(const char *tocode, const char *fromcode);
iconv_open()
関数は、文字エンコーディング
fromcode から
文字エンコーディング
tocode
へのバイト文字列変換に適した
変換ディスクリプターを割り当てる。
fromcode と
tocode
に使うことのできる値と、
サポートされる組み合わせは、システムに依存する。
GNU C
ライブラリでは、使うことのできる値は
iconv --list
コマンドでリストされ、
リストされたすべての値の組み合わせがサポートされる。
さらに、 GNU C
ライブラリと GNU libiconv
ライブラリでは、
以下の接尾辞がサポートされている。
- //TRANSLIT
-
tocode
の後ろに文字列
"//TRANSLIT"
が付いている場合、
翻訳 (transliteration)
が有効になる。この場合、
変換先の文字セットで表現できない文字を、その文字と同じように見える
文字
(複数文字の場合もある)
で表現することができる。
- //IGNORE
-
tocode
の後ろに文字列
"//IGNORE"
が付いている場合、
変換先の文字セットで表現できない文字は黙って無視される。
この関数を読んで得られた変換ディスクリプターは、
iconv(3) で
何度でも使うことができる。
これは
iconv_close(3)
を使って解放されるまで有効である。
変換ディスクリプターは変換状態を持つ。
iconv_open()
を用いて生成された後、変換状態は初期状態である。
iconv(3)
を使うことにより、ディスクリプターの変換状態が変更される。
変換状態を初期状態に戻すには、
inbuf 引数を NULL として
iconv(3) を用いること。
iconv_open()
関数は、新たに割り当てられた変換ディスクリプターを返す。
エラーの場合、この関数は
errno を設定し、
(iconv_t) -1 を返す。
他のいろいろなエラーのうち、以下のエラーが起こりうる。
- EINVAL
-
fromcode から tocode
への変換は、この実装ではサポートされていない。
この関数はバージョン
2.1 以降の glibc
で利用可能である。
この節で使用されている用語の説明については、
attributes(7) を参照。
インターフェース |
属性 |
値 |
iconv_open() |
Thread safety |
MT-Safe locale |
POSIX.1-2001, POSIX.1-2008, SUSv2.
iconv(1),
iconv(3),
iconv_close(3)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。