Windows 下关于转码的函数
Posted 树梢流年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows 下关于转码的函数相关的知识,希望对你有一定的参考价值。
1 std::string& MsgFieldList::GBToUTF8(std::string& des,const char* str) 2 { 3 WCHAR *strSrc; 4 TCHAR *szRes; 5 6 //获得临时变量的大小 7 int i = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0); 8 strSrc = new WCHAR[i+1]; 9 MultiByteToWideChar(CP_ACP, 0, str, -1, strSrc, i); 10 11 //获得临时变量的大小 12 i = WideCharToMultiByte(CP_UTF8, 0, strSrc, -1, NULL, 0, NULL, NULL); 13 szRes = new TCHAR[i+1]; 14 int j=WideCharToMultiByte(CP_UTF8, 0, strSrc, -1, szRes, i, NULL, NULL); 15 16 des = szRes; 17 delete []strSrc; 18 delete []szRes; 19 20 return des; 21 }
反转代码:
1 std::string& MsgFieldList::UTF8ToGB(std::string& des,const char* str) 2 { 3 WCHAR *strSrc; 4 TCHAR *szRes; 5 6 //获得临时变量的大小 7 int i = MultiByteToWideChar(CP_UTF8, 0, str, -1, NULL, 0); 8 strSrc = new WCHAR[i+1]; 9 MultiByteToWideChar(CP_UTF8, 0, str, -1, strSrc, i); 10 11 //获得临时变量的大小 12 i = WideCharToMultiByte(CP_ACP, 0, strSrc, -1, NULL, 0, NULL, NULL); 13 szRes = new TCHAR[i+1]; 14 WideCharToMultiByte(CP_ACP, 0, strSrc, -1, szRes, i, NULL, NULL); 15 16 des = szRes; 17 delete []strSrc; 18 delete []szRes; 19 20 return des; 21 }
以上是关于Windows 下关于转码的函数的主要内容,如果未能解决你的问题,请参考以下文章