WideCharToMultiByte函数
功能:把一个宽字符串的格式映射(Map)到一个新的字符串中。这个新字符串可以不属于多字节字符集(multibyte character set)。
int WideCharToMultiByte(
//【输入参数】CP_开头,比如CP_UTF8,我就使用的这个。当参数为CP_UTF8这个值时,最后两个参数都必须为0
//在C++中,NULL==0,FALSE==0
UINT CodePage,
//【输入参数】转换算法的方式,一般是0,对于CP_UTF8,此值必须是0或者 WC_ERR_INVALID_CHARS
DWORD dwFlags,
//【输入参数】宽字符串的地址,(源 from)
LPCWSTR lpWideCharStr,
//【输入参数】lpWideCharStr的长度,单位是WCHAR。
//如果值为 -1 ,表示lpWideCharStr是以NULL结尾的字符串,函数自动计算字符串的长度.
//如果值为 0,函数将不能成功执行。
int cchWideChar,
// 【输出参数】转换后的字符串结果将放在这里。
LPSTR lpMultiByteStr,
//【输入参数】lpMutiByteStr的长度,单位为Byte。
//如果设置为0,则函数返回 lpMutiByteStr 的所需长度,而参数lpMutiByteStr不会被使用(可以设置成NULL)。
int cbMultiByte,
//【输入参数】如果字符集中没有对应的转换,就使用这个参数替换
//如果CodePage参数为UTF8,则必须设置为0
LPCSTR lpDefaultChar,
//【输入参数】如果CodePage参数为UTF8,则必须设置为0
LPBOOL lpUsedDefaultChar
);
文章摘录翻译自MSDN。