怎么样将GB编码转换为UTF8编码。

怎么样将GB编码转换为UTF8编码。

在前面的文章《通过短信网关发送Wappush消息》中使用到了一个GB2UTF8的函数,有朋友问到这个函数的实现方法。代码如下:

-----------------------------------------------------------
bool GB2UTF8(char *pszGB, char *pszUTF8)
{
int nUCS2Len = (strlen(pszGB) + 1) * 2;
char *pszUCS2Temp = new char[nUCS2Len];
if( pszUCS2Temp == NULL )
{
return false;
}
memset(pszUCS2Temp,0,nUCS2Len);
int nRet = MultiByteToWideChar(CP_ACP, 0, pszGB, -1, (LPWSTR)pszUCS2Temp, nUCS2Len/2);
if(nRet==0)
{
delete[] pszUCS2Temp;
return false;
}

nRet = WideCharToMultiByte(CP_UTF8, 0, (LPWSTR)pszUCS2Temp, -1, pszUTF8, nUCS2Len, NULL, NULL);
if(nRet==0)
{
delete[] pszUCS2Temp;
return false;
}
delete[] pszUCS2Temp;
return true;
}
-----------------------------------------------------------