多字节字符集 转 UTF-8,奇数中文转换后就会出现"?"字符
应该是编码没有统一。把你具体编码环境贴出来看看
具体是什么问题,如果是数据库的话就是建库时没指定字符集
应该还是编码对应统一问题
void ConvertGBKToUtf8(CString &strGBK)
{
int len=MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)strGBK, -1, NULL,0);
wchar_t * wszUtf8 = new wchar_t [len+1];
memset(wszUtf8, 0, len);
MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)strGBK, -1, wszUtf8, len);
wszUtf8[len] = '\0';
len = WideCharToMultiByte(CP_UTF8, 0, wszUtf8, -1, NULL, 0, NULL, NULL);
char *szUtf8=new char[len + 10];
memset(szUtf8, 0, len + 10);
WideCharToMultiByte (CP_UTF8, 0, wszUtf8, -1, szUtf8, len+10, NULL,NULL);
strGBK = szUtf8;
delete[] szUtf8;
delete[] wszUtf8;
}
网上找了好多资料 都是先转换成unicode 然后再转成 UTF8的字符 可是就是出现奇数的中文字符 转换过程会丢失最后一个字节
转换之前是“dfasdf测试目录测试测dsf”
转换之后是 “---------------------sf”
'd'字符就丢失了