Qt 将TCHAR*转换为QString

Qt 将TCHAR*转换为QString,qt,type-conversion,qt5,Qt,Type Conversion,Qt5,如何在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

如何在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
int-recordSize=1000;
TCHAR*qRecord=新的TCHAR[recordSize];
//这里我从其他函数中获取数据
//这里我试着展示一下
qString()
成功了。
谢谢

@kajojeq 不,你的第二个答案不正确。因为当编码设置为utf16(有时甚至utf8)时,s变量只保存一个字符。 正确的转换为:


QString str=QString::fromWCharArray(qrecord)

QString::fromLocal8Bit
?这应该是可以接受的答案,因为这些天的编码默认设置为UT8或UT16。正如拉希德提到的,当时公认的解决方案根本不起作用。Rashid提供的答案适用于UT8/16
 QString s= (LPSTR)qRecord;