网站的数据库怎么做,网站开发要多久,青田网站建设,oa系统主要干什么的简介 字符串编码转换封装函数#xff0c;UTF-8编码与本地编码互转。 中文乱码的解决方法
有时候我们会遇到乱码的字符串#xff0c;比如#xff1a;
古文码 可能是用GBK方式读取UTF-8编码的中文导致的#xff0c;用下面的Utf8ToLocal(string str)函数转换一下就可以了。…简介 字符串编码转换封装函数UTF-8编码与本地编码互转。 中文乱码的解决方法
有时候我们会遇到乱码的字符串比如
古文码 可能是用GBK方式读取UTF-8编码的中文导致的用下面的Utf8ToLocal(string str)函数转换一下就可以了。口字码 可能是因为以UTF-8的方式读取GBK编码的中文导致的用下面的LocalToUtf8(string str)函数转换一下能搞定。
代码
//将UTF-8编码的字符串转换为本地编码
string Utf8ToLocal(string str)
{std::string result;WCHAR* strSrc;LPSTR szRes;//获得临时变量的大小int i MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, NULL, 0);strSrc new WCHAR[i 1];MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, strSrc, i);//获得临时变量的大小i WideCharToMultiByte(CP_ACP, 0, strSrc, -1, NULL, 0, NULL, NULL);szRes new CHAR[i 1];WideCharToMultiByte(CP_ACP, 0, strSrc, -1, szRes, i, NULL, NULL);result szRes;delete[]strSrc;delete[]szRes;return result;
}//将本地编码转换为UTF-8编码的字符串
string LocalToUtf8(string str)
{std::string result;WCHAR* strSrc;CHAR* szRes;int i;// 获得临时变量的大小 i MultiByteToWideChar(CP_ACP, 0, str.c_str(), -1, NULL, 0);strSrc new WCHAR[i 1];MultiByteToWideChar(CP_ACP, 0, str.c_str(), -1, strSrc, i);// 获得临时变量的大小 i WideCharToMultiByte(CP_UTF8, 0, strSrc, -1, NULL, 0, NULL, NULL);szRes new CHAR[i 1];WideCharToMultiByte(CP_UTF8, 0, strSrc, -1, szRes, i, NULL, NULL);result szRes;delete[] strSrc;delete[] szRes;return result;
}