• 8152阅读
  • 2回复

[提问]输出*char总是乱码.输出QString正常 [复制链接]

上一主题 下一主题
离线fcymk2
 

只看楼主 倒序阅读 楼主  发表于: 2009-10-20
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
在 QPlainTextEdit *ptxtOutScreen; 上显示输出

        qint32 len = 40;
        QString test;
        char *testChar;
        testChar = new char[len ];
        for (qint32 i=0; i<len ; ++i)
        {
            *(testChar+i) = i;
        }
        test = tr("Test");
        ui.ptxtOutScreen->appendPlainText(QString::number(len, 10));
        ui.ptxtOutScreen->appendPlainText(test);
        ui.ptxtOutScreen->appendPlainText(QString(testChar));
        ui.ptxtOutScreen->moveCursor(QTextCursor::End);
        delete []testChar;
        testChar = NULL;

其中,test可以正常显示...把testChar转换为QString后输出直接是乱码,使用QString::fromAscii,fromUtf8,fromLatin1,fromLocal8Bit等转换char数组 输出的也全部是乱码.....是哪里还要设置吗? 还是干脆就是写错了@_@
离线dbzhang800

只看该作者 1楼 发表于: 2009-10-20
写错了

你应该没分清  整数 1  ,字符 ‘\x01’, 字符 ‘1’, 整数 49 等的区别
离线fcymk2

只看该作者 2楼 发表于: 2009-10-20
寒....自己想半天没想到怎么回事...

现在明白了...直接把 整数赋值到 char里面去了...应该把 整数先转成string或char再赋值的..
快速回复
限100 字节
 
上一个 下一个