変数 | |
int | lenient |
int | last_block |
unsigned | at_most |
int | nchars |
int | nbytes |
union { | |
void * ptr | |
double dbl | |
char c [256] | |
} | status |
void * | internal_info |
|
厳密な変換が必要でない場合に値を 0 以外にする。デフォルトでは、 変換は厳密である。
変換が厳密とは、デコードの際には最初の不正なバイトでコンバータ が止まること、エンコードの際には変換されるコード系でサポートさ れない最初の文字でコンバータが止まることを指す。これらの場合、 変換が厳密でない場合には、デコードの際の不正なバイトはそのバイト のまま残る。またエンコードの際には、不正な文字は Unicode 文字の 場合には "<U+XXXX>" に、そうでない場合には "<M+XXXXXX>" に置き換 えられる。 |
|
バイト列の終端のブロックをデコードする際、または文字列の終端のブ ロックをエンコードする際は、値を 0 以外にする。この値は以下のよう に変換に影響する。 デコーディングの際に最後の数バイトが正しいバイトシークエンスを形 成するには短すぎる場合: 値が 0 でなければ、変換はそのシークエンスの最初のバイトにおいて、 エラー (MCONVERSION_RESULT_INVALID_BYTE) で終る。 値が 0 ならば、変換は成功して終る。問題の数バイトはキャリーオー バとしてコンバータに保持され、続きの変換を行う際に変換するバイ ト列の前に付けられる。 エンコーディングの際にコード系が文脈依存の場合、 値が 0 でなければ、コンテキストを最初に戻すためのバイト列がソー スの文字とかかわりなく変換の結果生成されることがある。 値が 0 ならば、そのようなバイト列は生成されない。 |
|
0 でなければ、変換される最大の文字数を指定する。 |
|
以下の3つのメンバは変換の結果を報告する。 最近にデコード/エンコードされた文字数。 |
|
最近にデコード/エンコードされたバイト数。 |
|
|
|
|
|
|
|
コード変換の状況に関する種々の情報。内容はコード系のタイプによっ て異なる。 |
|
このメンバは内部的に使用され、アプリケーションプログラムは触 れてはならない。 |