1、首先将CString转为const char*
const char* CStringToChar(CString sSource)
{
char* ptr;
#ifdef _UNICODE
LONG len;
len = WideCharToMultiByte(CP_ACP, 0, sSource, -1, NULL, 0, NULL, NULL);
ptr = new char[len + 1];
memset(ptr, 0, len + 1);
WideCharToMultiByte(CP_ACP, 0, sSource, -1, ptr, len + 1, NULL, NULL);
#else
ptr = new char[sSource.GetAllocLength() + 1];
sprintf(ptr, _T("%s"), sSource);
#endif
return ptr;
}
2、可使用GDAL中内置了编码转换方法,示例GBK转UTF-8
char* gbkPtr = CPLRecode(CStringToChar(sSource), "GBK", "UTF-8");