_setmbcp

マルチバイト文字の新しいコード ページを設定します。

int _setmbcp(
   int codepage 
);

パラメーター

  • codepage
    ロケールに依存しないマルチバイト ルーチン用コード ページの新しい設定値。

戻り値

コード ページが正常に設定された場合は 0 を返します。 codepage に無効なコード ページの値が渡された場合は –1 を返します。この場合、コード ページ設定は変更されません。 メモリ割り当てが失敗した場合、errno を EINVAL に設定します。

解説

_setmbcp 関数は、マルチバイト文字の新しいコード ページを指定します。 既定では、ランタイム システムは、マルチバイト文字のコードページをシステムの既定の ANSI コード ページに設定します。 マルチバイト文字のコード ページの設定は、ロケールに依存しないすべてのマルチバイト ルーチンに影響します。 ただし、現在のロケール用に定義されているコード ページを使うように、_setmbcp 関数に指示できます。下の記号定数と対応する動作結果の一覧を参照してください。 マルチバイト文字のコード ページではなく、ロケールのコード ページに依存するマルチバイト ルーチンの一覧については、「マルチバイト文字のシーケンスの解釈」を参照してください。

マルチバイト文字のコード ページは、次のランタイム ライブラリ ルーチンによるマルチバイト文字の処理にも影響します。

_exec 系関数

_mktemp

_stat

_fullpath

_spawn 系関数

_tempnam

_makepath

_splitpath

tmpnam

さらに、マルチバイト文字の 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 ランタイム ライブラリ」の「互換性」を参照してください。

参照

参照

_getmbcp

setlocale、_wsetlocale