_setmbcp
マルチバイト文字の新しいコード ページを設定します。
int _setmbcp(
int codepage
);
パラメーター
- codepage
ロケールに依存しないマルチバイト ルーチン用コード ページの新しい設定値。
戻り値
コード ページが正常に設定された場合は 0 を返します。 codepage に無効なコード ページの値が渡された場合は –1 を返します。この場合、コード ページ設定は変更されません。 メモリ割り当てが失敗した場合、errno を EINVAL に設定します。
解説
_setmbcp 関数は、マルチバイト文字の新しいコード ページを指定します。 既定では、ランタイム システムは、マルチバイト文字のコードページをシステムの既定の ANSI コード ページに設定します。 マルチバイト文字のコード ページの設定は、ロケールに依存しないすべてのマルチバイト ルーチンに影響します。 ただし、現在のロケール用に定義されているコード ページを使うように、_setmbcp 関数に指示できます。下の記号定数と対応する動作結果の一覧を参照してください。 マルチバイト文字のコード ページではなく、ロケールのコード ページに依存するマルチバイト ルーチンの一覧については、「マルチバイト文字のシーケンスの解釈」を参照してください。
マルチバイト文字のコード ページは、次のランタイム ライブラリ ルーチンによるマルチバイト文字の処理にも影響します。
さらに、マルチバイト文字の argv または envp プログラム引数をパラメーターとして受け取るすべてのランタイム ライブラリ ルーチン (_exec 系関数、_spawn 系関数など) は、これらの文字列をマルチバイト コード ページに従って処理します。 したがって、_setmbcp 関数を呼び出してマルチバイト コード ページを変更すると、これらのルーチンも影響を受けます。
引数 codepage には、次のいずれかの値を設定できます。
_MB_CP_ANSI プログラムの起動時にオペレーティング システムから取得した ANSI コード ページを使用します。
_MB_CP_LOCALE 前回の setlocale 関数の呼び出しから取得した現在のロケールのコード ページを使用します。
_MB_CP_OEM プログラムの起動時にオペレーティング システムから取得した OEM コード ページを使用します。
_MB_CP_SBCS 1 バイト文字のコード ページを使用します。 コード ページを _MB_CP_SBCS に設定すると、_ismbblead などのルーチンは必ず false を返します。
ANSI、OEM、またはオペレーティング システムがサポートする他のコード ページ値に関係なく、その他の有効なコード ページ値 (サポートされていない UTF-7 および UTF-8 を除く)。
必要条件
ルーチン |
必須ヘッダー |
---|---|
_setmbcp |
<mbctype.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。