CPINFO 结构 (winnls.h)
包含有关代码页的信息。 GetCPInfo 函数使用此结构。
语法
typedef struct _cpinfo {
UINT MaxCharSize;
BYTE DefaultChar[MAX_DEFAULTCHAR];
BYTE LeadByte[MAX_LEADBYTES];
} CPINFO, *LPCPINFO;
成员
MaxCharSize
代码页中字符的最大长度(以字节为单位)。 对于 SBCS () 的单 字节字符集 ,长度可以为 1;对于 DBCS) (双字节字符集 ,长度可以为 2;对于其他字符集类型,长度可以大于 2。 由于其他因素(例如,使用 ISCII 或 ISO-2022-xx 代码页),函数无法使用 大小来区分 SBCS 或 DBCS 与其他字符集。
DefaultChar[MAX_DEFAULTCHAR]
将字符串转换为特定代码页时使用的默认字符。 如果未指定显式默认字符, 则 WideCharToMultiByte 函数将使用此字符。 对于代码页,默认值通常是“?”字符。
LeadByte[MAX_LEADBYTES]
前导字节范围的固定长度数组,前导字节范围的数量是可变的。 如果代码页没有前导字节,则数组的每个元素都设置为 NULL。 如果代码页具有前导字节,则数组将为每个范围指定一个起始值和一个结束值。 范围是非独占的,任何代码页的最大范围数为 5。 数组使用两个字节来描述每个范围,两个 null 字节作为最后一个范围之后的终止符。
备注
前导字节对于允许超过 256 个字符的 DBCS 代码页是唯一的。 前导字节是 DBCS 中 2 字节字符的第一个字节。 在每个 DBCS 代码页上,前导字节占用特定范围的字节值。 对于不同的代码页,此范围是不同的。
对于大多数代码页,前导字节信息并不十分有用,甚至没有为许多多字节编码(例如 UTF-8 和 GB18030)提供。 不建议应用程序使用此信息来预测 MultiByteToWideChar 或 WideCharToMultiByte 函数将执行的操作。 如果前导字节后面的字节不符合预期,函数最终可能会使用默认字符或执行其他默认行为。
GetCPInfoEx 函数使用的 CPINFOEX 提供此结构的扩展版本。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
标头 | winnls.h (包括 Windows.h) |