当前位置:编程学习 > C/C++ >>

ANSI UNICODE 字符串相互转换

1 /////////////////////////////////////////////////////////////////////////////////
 2 //    Anis 转 Unicode 字符串函数
 3 //    入口参数:char*     (Ansi字符串指针)
 4 //    返回数据:TCHAR*    (Unicode字符串指针)
 5 /////////////////////////////////////////////////////////////////////////////////
 6 TCHAR* AnsiToUnicode(char* str)
 7 {
 8     if( !str )
 9         return NULL;
10
11     int wcslen = ::MultiByteToWideChar(CP_ACP, NULL, str, strlen(str), NULL, 0);
12     TCHAR *wstr = new TCHAR[wcslen + 1];
13     ::MultiByteToWideChar(CP_ACP, NULL, str, strlen(str), wstr, wcslen);
14     wstr[wcslen] = '\0';
15
16     return wstr;
17 }

 
 
 1 /////////////////////////////////////////////////////////////////////////////////
 2 //    Unicode 转 Ansi 字符串函数
 3 //    入口参数:TCHAR*        (Unicode字符串指针)
 4 //    返回数据:char*         (Ansi字符串指针)
 5 /////////////////////////////////////////////////////////////////////////////////
 6 char* UnicodeToAnsi(TCHAR* wstr)
 7 {
 8     if( !wstr )
 9         return NULL;
10
11     int strleng = ::WideCharToMultiByte(CP_ACP, NULL, wstr, wcslen(wstr), NULL, 0, NULL, FALSE);
12     char* str = new char[strlen + 1];
13     ::WideCharToMultiByte(CP_ACP, NULL, wstr, wcslen(wstr), str, strleng, NULL, FALSE);
14     str[strlen] = '\0';
15
16     return str;
17 }


 

摘自  诸葛飞
 
补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,