FoldString函数将一个字符串映射到另一个字符串,执行指定的转换选项。
int FoldString(
DWORD 【dwMapFlags】, | //映射变换选项 |
LPCTSTR 【lpSrcStr】, | //指向源字符串的指针 |
INT 【cchSrc】, | //源字符串的大小,以字节或字符为单位 |
LPTSTR 【lpDestStr】, | //指向目标缓冲区的指针 |
INT 【cchDest】 | //目标缓冲区的大小,以字节或字符为单位 |
); |
参数
【dwMapFlags】
一组位标志,指示在映射期间要使用的转换类型。该值可以是以下位标志常量的组合:
选项 | 含义 |
MAP_FOLDCZONE | 将兼容区域字符串折成标准的Unicode等价物。有关兼容区域字符的信息,请参阅以下备注部分。 |
MAP_FOLDDIGITS | 将所有数字映射到Unicode字符0到9。 |
MAP_PRECOMPOSED | 将重音字符映射到预先配置的字符,其中将口音和基本字符组合成单个字符值。此值不能与MAP_COMPOSITE组合。 |
MAP_COMPOSITE | 将重音字符映射到复合字符,其中重音和基本字符由两个字符值表示。该值不能与MAP_PRECOMPOSED组合。 |
【lpSrcStr】
指向要映射的字符串。
【cchSrc】
指定【lpSrcStr】缓冲区的大小(以字节为单位)(ANSI版本)或字符(Unicode版本)。如果【cchSrc】为-1,则假定【lpSrcStr】为空终止,并自动计算长度。
【lpDestStr】
指向缓冲区以存储映射的字符串。
【cchDest】
指定【lpDestStr】缓冲区的大小(以字节为单位)(ANSI版本)或字符(Unicode版本)。如果【cchDest】为零,则该函数返回保存映射字符串所需的字节数或字符数,不使用【lpDestStr】指向的缓冲区。
返回值
如果函数成功,则返回值是写入目标缓冲区的字节数(ANSI版本)或字符(Unicode版本),或者【cchDest】参数为零时,要保存映射的字节数或字符数串。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.GetLastError可能会返回以下错误代码之一:
ERROR_INSUFFICIENT_BUFFER
ERROR_INVALID_FLAGS
ERROR_INVALID_PARAMETER
备注
如果源字符串为空终止,则映射的字符串为空终止。
【lpSrcStr】和【lpDestStr】指针不能相同。如果它们相同,则该函数失败,GetLastError返回ERROR_INVALID_PARAMETER。
Unicode中的兼容区域由0xF900到0xFFEF范围内的字符组成,分配给来自其他字符编码标准的字符,但实际上已经是Unicode的字符的变体。兼容区用于支持这些标准的往返映射。应用程序可以使用MAP_FOLDCZONE标志来避免支持兼容区域中的字符重复。
也可以看看