不同字符编码转换(UTF8 UNICODE ANSI)

来源:互联网 发布:淘宝网店收费 编辑:程序博客网 时间:2024/06/05 19:12

UTF8 - ANSI

CP_UTF8
选项是UTF8和UNICODE之间的转换

CP_ACP
是ANSI和UNICODE之间的转换


先将UTF8转换为UNICODE

wstring UTF8ToUnicode(const string& str){int  len = 0;len = str.length();int  unicodeLen = ::MultiByteToWideChar(CP_UTF8,0,str.c_str(),-1,NULL,0);wchar_t *  pUnicode;pUnicode = new  wchar_t[unicodeLen + 1];memset(pUnicode, 0, (unicodeLen + 1) * sizeof(wchar_t));::MultiByteToWideChar(CP_UTF8,0,str.c_str(),-1,(LPWSTR)pUnicode,unicodeLen);wstring  rt;rt = (wchar_t*)pUnicode;delete  pUnicode;return  rt;}
再将UNICODE转换为ANSI

string UnicodeToANSI(const wstring& str){char*     pElementText;int    iTextLen;// wide char to multi chariTextLen = WideCharToMultiByte(CP_ACP,0,str.c_str(),-1,NULL,0,NULL,NULL);pElementText = new char[iTextLen + 1];memset((void*)pElementText, 0, sizeof(char) * (iTextLen + 1));::WideCharToMultiByte(CP_ACP,0,str.c_str(),-1,pElementText,iTextLen,NULL,NULL);string strText;strText = pElementText;delete[] pElementText;return strText;}


原创粉丝点击