UNICODE 下字符类型的转换:
Unicode与char型(宽字符与窄字符)转换:
void WCharToAChar(wchar_t* wchar_src, char* str_dst,int size) //Unicode转char
{
memset(str,0,size);
DWORD flag=WideCharToMultiByte(CP_OEMCP,NULL,wchar,-1,NULL,0,NULL,FALSE);
WideCharToMultiByte(CP_OEMCP, NULL, wchar, -1, str, flag, NULL, FALSE);
}
void ACharToWChar(char* str_src, wchar_t* wchar_dst,int size) //char转Unicode
{
_wcsnset(wchar, 0, size);
DWORD flag=MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
MultiByteToWideChar (CP_ACP, 0, str, -1, wchar, size);
}
以下是两个更简单方便的函数:
wcstombs(char* _Dest,const wchar_t *_Source, size_t _MaxCount); //宽字符转窄字符
mbstowcs(wchar_t *_Dest, const char* _Source,size_t _MaxCount); //窄字符转宽字符
注意,wcstombs和mbstowcs两个函数在转换中文路径时会出现错误,转换后的结果在fopen中打开时会出错。所以将UNICODE中文路径转换成char型时最好用上面的WCharToAChar
unicode 下字符类型的转换
最新推荐文章于 2021-02-25 14:32:12 发布