std::string strTest("123abc中国人"); for (int i=0; i<100000; ++i) { //strTest = "123abc中国人"; char* p = xgStringToUTF8(strTest.c_str()); strTest.assign(p); delete [] p; } char* UnicodeToUTF8(const WCHAR* szSrc) { char *strSrc; int i = WideCharToMultiByte(CP_UTF8, 0, szSrc, -1, NULL, 0, NULL, NULL); strSrc = new char[i+1]; WideCharToMultiByte(CP_UTF8, 0, szSrc, -1, strSrc, i, NULL, NULL); // Unicode转换为UTF-8 return strSrc; } LPTSTR xgStringToUnicode(LPCSTR src) { LPTSTR pDes; int i = MultiByteToWideChar(CP_ACP, 0, src, -1, NULL, 0); pDes = new TCHAR[i+1]; MultiByteToWideChar(CP_ACP, 0, src, -1, pDes, i); return pDes; } char* xgStringToUTF8(LPCSTR src) { LPTSTR pDes = xgStringToUnicode(src); char* p = UnicodeToUTF8(pDes); delete []pDes; return p; }
普通字符和UTF8字符的转换
最新推荐文章于 2023-06-12 13:31:49 发布