使用C++调用图像内容审核问题
Ta的回复 :问题已解决。由于返回的json是UTF-8编码,Window默认识别Unicode和ASCII,需要上面这个回调里先转码。 先从UTF-8转成UTF-16,再从UTF-16转成ASCII,问题解决。代码如下: static size_t baidu_img_censor_callback(void* ptr, size_t size, size_t nmemb, void* stream) { // 获取到的body存放在ptr中,先将其转换为string格式 int nCharLen = size * nmemb; TCHAR* czUnicodeTemp = new TCHAR[nCharLen + 1]; char* czASCIITemp = new char[nCharLen + 1]; memset(czUnicodeTemp, 0, (nCharLen + 1)*sizeof(TCHAR)); memset(czASCIITemp, 0, (nCharLen + 1) * sizeof(char)); memcpy(czASCIITemp, ptr, nCharLen); MultiByteToWideChar(CP_UTF8, 0, czASCIITemp, nCharLen, czUnicodeTemp, nCharLen); WideCharToMultiByte(CP_ACP, 0, czUnicodeTemp, nCharLen, czASCIITemp, nCharLen, 0, 0); ImgCensor_result = czASCIITemp; delete[] czUnicodeTemp; delete[] czASCIITemp; return size * nmemb; }