Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at _setmbcp.
Sets a new multibyte code page.
Syntax
int _setmbcp(
int codepage
);
Parameters
codepage
New code page setting for locale-independent multibyte routines.
Return Value
Returns 0 if the code page is set successfully. If an invalid code page value is supplied for codepage
, returns –1 and the code page setting is unchanged. Sets errno
to EINVAL
if a memory allocation failure occurs.
Remarks
The _setmbcp
function specifies a new multibyte code page. By default, the run-time system automatically sets the multibyte code page to the system-default ANSI code page. The multibyte code page setting affects all multibyte routines that are not locale dependent. However, it is possible to instruct _setmbcp
to use the code page defined for the current locale (see the following list of manifest constants and associated behavior results). For a list of the multibyte routines that are dependent on the locale code page rather than the multibyte code page, see Interpretation of Multibyte-Character Sequences.
The multibyte code page also affects multibyte-character processing by the following run-time library routines:
_exec functions | _mktemp | _stat |
_fullpath | _spawn functions | _tempnam |
_makepath | _splitpath | tmpnam |
In addition, all run-time library routines that receive multibyte-character argv
or envp
program arguments as parameters (such as the _exec
and _spawn
families) process these strings according to the multibyte code page. Therefore, these routines are also affected by a call to _setmbcp
that changes the multibyte code page.
The codepage
argument can be set to any of the following values:
_MB_CP_ANSI
Use ANSI code page obtained from operating system at program startup._MB_CP_LOCALE
Use the current locale's code page obtained from a previous call to setlocale._MB_CP_OEM
Use OEM code page obtained from operating system at program startup._MB_CP_SBCS
Use single-byte code page. When the code page is set to_MB_CP_SBCS
, a routine such as _ismbblead always returns false.Any other valid code page value, regardless of whether the value is an ANSI, OEM, or other operating-system-supported code page (except UTF-7 and UTF-8, which are not supported).
Requirements
Routine | Required header |
---|---|
_setmbcp |
<mbctype.h> |
For more compatibility information, see Compatibility in the Introduction.