求问,显示成功,但是结果显示为乱码?
睡大觉啦天蝎 发布于2018-04 浏览:1216 回复:5
0
收藏
 
请问出现这种情况怎么解决,谢谢
收藏
点赞
0
个赞
共5条回复 最后由用户已被禁言回复于2022-04
#7hefeitest回复于2018-10

字符集不一致导致的

0
#5煽风点火上课回复于2018-08

我使用mingw编译的,输出时gbk格式,把原结果转为gbk格式输出就行了

string UTF8ToGBK(const std::string& strUTF8)
{
int nLen = MultiByteToWideChar(CP_UTF8, 0, strUTF8.c_str(), -1, NULL, 0);
unsigned short * wszGBK = new unsigned short[nLen + 1];
memset(wszGBK, 0, nLen * 2 + 2);
MultiByteToWideChar(CP_UTF8, 0, strUTF8.c_str(), -1, (LPWSTR)wszGBK, nLen);

nLen = WideCharToMultiByte(CP_ACP, 0, (LPWSTR)wszGBK, -1, NULL, 0, NULL, NULL);
char *szGBK = new char[nLen + 1];
memset(szGBK, 0, nLen + 1);
WideCharToMultiByte(CP_ACP,0, (LPWSTR)wszGBK, -1, szGBK, nLen, NULL, NULL);

std::string strTemp(szGBK);
delete[]szGBK;
delete[]wszGBK;
return strTemp;
}

 

string gbk = UTF8ToGBK(result.toStyledString());
cout << "语音识别本地文件结果:" << endl << gbk;

 

1
#4煽风点火上课回复于2018-08

同问

 

0
#3睡大觉啦天蝎回复于2018-04

c++啊,就是给的sdk-demo改的,,运行结果就这样了

0
#2用户已被禁言回复于2018-04

exe?你这是用啥语言调用呀?

0
TOP
切换版块