Share via


_setmbcp

设置新的多字节代码页。

int _setmbcp(
   int codepage 
);

参数

  • codepage
    区域设置无关多例程的新代码页中。

返回值

页代码如果设置成功,将返回 0。 如果无效代码页值为 codepage,返回 -1 提供和代码页设置保持不变。 如果内存分配失败,将 errno 设置为 EINVAL。

备注

_setmbcp 函数被指定新的多字节代码页。 默认情况下,运行时系统自动设置多字节代码页为系统默认 ANSI 代码页。 多字节代码页设置影响不是区域设置相关的所有多字节例程。 但是,可能会指示 _setmbcp 在当前区域设置代码页 (请参见使用定义的清单常数和相关行为结果如下列表)。 有关依赖于区域设置代码页而非多字节代码页多实例的列表,请参见 Multibyte 字符序列的说明

多字节代码页也影响处理受以下类型库运行库程序的多字节字符:

_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   使用单字节代码页。 在代码页设置为 _MB_CP_SBCS,则一例程 (如 _ismbblead 始终返回 false。

  • 其他有效的代码页的值,无论值是 OEM 或 ANSI、,其他运行系统支持的代码页 (UTF-7、UTF-8,不支持。)

要求

例程

必需的标头

_setmbcp

<mbctype.h>

有关更多兼容性信息,请参见“简介”中的兼容性

请参见

参考

_getmbcp

setlocale、_wsetlocale