qDebug() 输出 QString 中文显示乱码 10
QStringstr=QString::fromWCharArray(iter->szExeFile);qDebug()<<"YQ"<<str;下面是DbgView得到的...
QString str = QString::fromWCharArray(iter->szExeFile);
qDebug() << "YQ" << str;
下面是DbgView得到的信息 请问怎么解决呢?
[23304] YQ "\u8F6F\u76D2\u5B50.exe" 展开
qDebug() << "YQ" << str;
下面是DbgView得到的信息 请问怎么解决呢?
[23304] YQ "\u8F6F\u76D2\u5B50.exe" 展开
1个回答
展开全部
这个问题比较头疼呀。我也遇到过,我自己试验了下,总结出来点东西。
首先"QString::fromWCharArray"表示数据来源是wchar_t*,
其次qDebug()只能输出char*,
因此需要QString中的数据转换为char*再输出。
方法:
使用QString的toStdWString()方法转换为wchar_t*,然后在使用API-WideCharToMultiByte函数将wchar_t*转换为char*,输出即可。
其实要是输出wchar_t*的调试信息最好用API-OutputDebugStringW函数
首先"QString::fromWCharArray"表示数据来源是wchar_t*,
其次qDebug()只能输出char*,
因此需要QString中的数据转换为char*再输出。
方法:
使用QString的toStdWString()方法转换为wchar_t*,然后在使用API-WideCharToMultiByte函数将wchar_t*转换为char*,输出即可。
其实要是输出wchar_t*的调试信息最好用API-OutputDebugStringW函数
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询