您好,欢迎来到汇智旅游网。
搜索
您的当前位置:首页UTF-8转为ASCII(转)

UTF-8转为ASCII(转)

来源:汇智旅游网

一般从服务器上获取到的网页数据是UTF-8格式,要在对话框上显示正确无乱码,必须转成ASCII编码。这种方法比较简单方便: 

void ConvertUTF8ToANSI(const char* strUTF8, CString &strANSI)
{
	int nLen = ::MultiByteToWideChar(CP_UTF8,MB_ERR_INVALID_CHARS,(LPCTSTR)strUTF8,-1,NULL,0);
	//返回需要的unicode长度
	WCHAR * wszANSI = new WCHAR[nLen+1];
	memset(wszANSI, 0, nLen * 2 + 2);
	nLen = MultiByteToWideChar(CP_UTF8, 0, (LPCTSTR)strUTF8, -1, wszANSI, nLen);//把utf8转成unicode

	nLen = WideCharToMultiByte(CP_ACP, 0, wszANSI, -1, NULL, 0, NULL, NULL);//得到要的ansi长度
	char *szANSI=new char[nLen + 1];
	memset(szANSI, 0, nLen + 1);
	WideCharToMultiByte (CP_ACP, 0, wszANSI, -1, szANSI, nLen, NULL,NULL);//把unicode转成ansi
	strANSI = szANSI;
	delete[] wszANSI;
	delete[] szANSI;
}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- hzar.cn 版权所有 赣ICP备2024042791号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务