当前位置:编程学习 > C#/ASP.NET >>

VC如何将unicode字符串转为UTF8字符串

VC如何将unicode字符串转为UTF8字符串, 谢谢 --------------------编程问答-------------------- static void UTF_8ToUnicode(WCHAR* pOut,char *pText)
{
char* uchar = (char *)pOut;

uchar[1] = ((pText[0] & 0x0F) << 4) + ((pText[1] >> 2) & 0x0F);
uchar[0] = ((pText[1] & 0x03) << 6) + (pText[2] & 0x3F);
}

void UTF8ToUnicode(char *lpIn, int nLen, WCHAR *lpOut)
{
int i = 0;
int j = 0;
while( i < nLen )
{
WCHAR unicode = 0;
if( lpIn[i] > 0 )
{
*((char *)&unicode) = lpIn[i++];                       
}
else                 
{
UTF_8ToUnicode(&unicode, lpIn + i);
i += 3;    
}
lpOut[j++] = unicode;
}
lpOut[j] = L'\0';
}
--------------------编程问答-------------------- 我一般将一个字符串转为unicode都使用unicode(str, encoding)
而将一个unicode转为其它的编码使用unistr.encode(encoding) 

比如‘'中'字的utf-8编码是:\xe4\xb8\xad,
这时,unicode('\xe4\xb8\xad', 'utf-8')的结果就是'中'字的unicode,为:u'\u4e2d'.  --------------------编程问答-------------------- 记得给分~ --------------------编程问答-------------------- DWORD dwLength = MultiByteToWideChar(CP_UTF8, 0, pstrSource, -1, NULL, 0);
WCHAR *pwText = new WCHAR[dwLength];
MultiByteToWideChar(CP_UTF8, 0, pstrSource, -1, pwText, dwLength);
strDest.Format(_T("%s"),pwText);
补充:.NET技术 ,  VC.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,