標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
XPG4 |
両方 |
#include <iconv.h>
iconv_t iconv_open(const char *tocode, const char *fromcode);
fromcode 引数が指す配列内で指定されている エンコード文字セットから、tocode 引数が指す 配列内で指定されているエンコード文字セットへ文字を変換するために必要な 初期化すべてを実行します。
変換記述子は、2 つのエンコード文字セットを関連付けます。
状態に依存するエンコードの場合、変換記述子はエンコード文字セットに 依存する初期シフト状態になり、すぐに iconv() で使用できるように なります。変換記述子は、iconv_close() でクローズされるまで有効です。
fromcode と tocode の設定、および可能な組み合わせは インプリメンテーションに依存します。
iconv() 関数ファミリーと Unicode サービスには外部の違いがあります。しかし、それらの違いは、「z/OS XL C/C++ コンパイラーとランタイムアプリケーション・プログラマー用マイグレーション・ガイド」に記述されている点を除いて、iconv() 関数ファミリーによって管理されます。「z/OS XL C/C++ プログラミング・ガイド」の『提供されているコード・セット・コンバーター』のトピックにリストされているすべての変換は、_ICONV_TECHNIQUE が未定義のままになっている限り、Unicode Services の組み込み前と同様に機能します。アプリケーションが _ICONV_TECHNIQUE 環境変数を定義しない場合、iconv_open() は LMREC のデフォルト値を使用します。
Unicode Services は、「z/OS XL C/C++ プログラミング・ガイド」に記載されていない、多くの文字セット間の変換をサポートします。Unicode サービスがサポートする変換の完全なリストは、 「z/OS Unicode Services ユーザーズ・ガイドおよび解説書」の「表 25」および「表 26」を参照してください。 これらの表にリストされている文字セットに対する iconv_open() を使用した変換を セットアップするには、ユーザーは、fromcode と tocode に、CCSID を表す 文字ストリングを使用する必要があります。例えば、変換技法 R を使用した CCSID 00256 から CCSID 00870 への変換を設定するためには、_ICONV_TECHNIQUE 環境変数を R に設定し、以下のように iconv_open() を呼び出します。
cd = iconv_open(“00870”, “00256”);
続いて、以前のリリース同様、iconv() と iconv_close() を使用します。
iconv_close() の使用例については、例を参照してください。
iconv_open( ) は、双方向レイアウト変換属性を取得するための環境変数 _BIDIATTR が存在して いるかどうかについて検査します。_BIDIATTR が定義されていないか設定されていない場合、または _BIDIATTR 環境変数に誤った値 が入っている場合、この関数はデフォルト値を使用します。そのデフォルト値は、使用されるアラビア語またはヘブライ語コード・セットに応じて コード・セットに依存します。アラビア語 420 コード・セットの場合、デフォルト値は、方向 RTL、テキストの タイプ visual、shaping shaped、numerals、national、および swapping on になります。ヘブライ語 424 コード・セットの場合、デフォルト値は、方向 RTL、テキスト・ タイプ visual、および swapping on になります。他のアラビア語コード・セットの場合、デフォルト値は、方向 RTL、テキスト・ タイプ implicit、shaping nominal、numerals、national、および swapping on になります。
正常に実行された場合、iconv_open() は変換記述子を戻します。
Unicode 変換サービスが CUN_RS_NO_UNI_ENV エラーを発行しました。
ユーザー処置については、「z/OS Unicode Services ユーザーズ・ガイドおよび解説書」を参照してください。
Unicode 変換サービスが CUN_RS_NO_CONVERSION エラーを発行しました。
ユーザー処置については、「z/OS Unicode Services ユーザーズ・ガイドおよび解説書」を参照してください。
Unicode 変換サービスが CUN_RS_TABLE_NOT_ALIGNED エラーを発行しました。
ユーザー処置については、「z/OS Unicode Services ユーザーズ・ガイドおよび解説書」を参照してください。
Unicode 変換サービスを使用中に、関数 iconv() で予期せぬエラーが起こりました。
追加情報については、メッセージ EDC6258 を参照してください。