- #include <winnls.h>
- CString conversion_characterset(LPCSTR lpszStr, int sourceCodepage, int targetCodepage)
- {
- int unicodeLen=MultiByteToWideChar(sourceCodepage,0,lpszStr,-1,NULL,0);
- wchar_t* pUnicode;
- pUnicode=new wchar_t[unicodeLen+1];
- memset(pUnicode,0,(unicodeLen+1)*sizeof(wchar_t));
- MultiByteToWideChar(sourceCodepage,0,lpszStr,-1,(LPWSTR)pUnicode,unicodeLen);
- BYTE * pTargetData = NULL;
- int targetLen=WideCharToMultiByte(targetCodepage,0,(LPWSTR)pUnicode,-1,(char *)pTargetData,0,NULL,NULL);
- pTargetData=new BYTE[targetLen+1];
- memset(pTargetData,0,targetLen+1);
- WideCharToMultiByte(targetCodepage,0,(LPWSTR)pUnicode,-1,(char *)pTargetData,targetLen,NULL,NULL);
- CString rt = pTargetData;
- delete pUnicode;
- delete pTargetData;
- return rt;
- }
字符集转换
最新推荐文章于 2024-09-14 11:07:59 发布