怎么样将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; } -----------------------------------------------------------