将TCHAR*转换为QString

4
如何在Qt中最简单地进行转换?
int recordSize = 1000;
TCHAR* qRecord = new TCHAR[recordSize];
//here I get data form other function
//here I try to display
qString() << QString::fromWCharArray(qRecord,recordSize);//gives many ????
printf("%s",qRecord); // this work perfectly

我尝试使用wcstombs、formStdWString等方法,但似乎都不起作用。 感谢任何帮助。

使用 QString::fromLocal8Bit 有什么作用? - ratchet freak
2个回答

6

@kajojeq不对,您的第二个答案是错误的。因为当编码设置为utf16(甚至有时候是utf8)时,变量s仅保存一个字符。 正确的转换方式是:

QString str = QString::fromWCharArray(qrecord)


这应该是被接受的答案,因为现在编码默认设置为UT8或UT16。正如Rashid所提到的,被接受的解决方案根本不起作用。Rashid提供的答案在UT8/16的情况下可以正确地工作。 - Ed Sykes

5
 QString s= (LPSTR)qRecord;

worked. thanks


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接