IsDBCSLeadByteEx 函数 (winnls.h)
确定指定的字符是否可能是前导字节。 前导字节是双字节字符集中双字节 字符 的第一个字节, (代码页的 DBCS) 。
语法
BOOL IsDBCSLeadByteEx(
[in] UINT CodePage,
[in] BYTE TestChar
);
参数
[in] CodePage
用于检查前导字节范围的代码页的标识符。 此参数可以是 Unicode 和字符集常量 中定义的代码页标识符之一,也可以是以下预定义值之一。 此函数仅在代码页 932、936、949、950 和 1361 中验证前导字节值。
值 | 含义 |
---|---|
|
使用系统默认的 Windows ANSI 代码页。 |
|
使用系统默认的 Macintosh 代码页。 |
|
使用系统默认 OEM 代码页。 |
|
对当前线程使用 Windows ANSI 代码页。 |
[in] TestChar
要测试的字符。
返回值
如果字节是前导字节,则返回非零值。 如果字节不是前导字节或字符是单字节字符,则函数返回 0。 若要获取扩展的错误信息,应用程序可以调用 GetLastError。
注解
注意 此函数不验证尾字节是否存在或有效性。 因此, MultiByteToWideChar 可能无法识别使用 IsDBCSLeadByte 的应用程序报告为前导字节的序列。 应用程序很容易与 MultiByteToWideChar 的结果不同步,这可能会导致意外错误或缓冲区大小不匹配。
前导字节值特定于每个不同的 DBCS。 某些字节值可以在单个代码页中显示为 DBCS 字符的前导字节和尾字节。 因此, IsDBCSLeadByteEx 只能指示潜在的前导字节值。
为了理解 DBCS 字符串,应用程序通常从字符串的开头开始,向前扫描,在遇到前导字节时进行跟踪,并将下一个字节视为同一字符的尾随部分。 若要备份,应用程序应使用 CharPrevExA ,而不是尝试开发自己的算法。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 专业版 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows 2000 Server [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | winnls.h (包括 Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |