做vc++开发免不了多字节UNICODE、UTF-8转来转去,下面贴出我写的几个字符转化函数
1、 TCHAR 和CHAR转化, TCHAR 对应UNICODE和多字节下分别是WCHAR 和CHAR 函数如下:
需要注意*dest是new出来的需要释放
//char 字符串转化为tchar字符串
void C2T(TCHAR** dest, const char* src)
{
#ifdef _UNICODE
if (src == NULL)
{
return ;
}
size_t alen = strlen(src) + 1;
size_t ulen = (size_t)MultiByteToWideChar(CP_ACP, 0, src,alen,NULL, 0 )+1;
*dest = new WCHAR[ulen];
::MultiByteToWideChar(CP_ACP, 0, src, alen, *dest, ulen);
#else
//多字节TCHAR就是 char
int len = strlen(src)+1;
*dest = new char[len];
strcpy(*dest, src);
#endif
}
2、TCHAR转化为多字节,同样要注意*dest指针释放
void T2C(char** dest, const TCHAR* src)
{
if(src == NULL)