• 13058阅读
  • 6回复

[提问]QByteArray如何在QTextEdit上显示?英文正确,中文乱码 [复制链接]

上一主题 下一主题
离线iiiyyyhhhsss
 

只看楼主 倒序阅读 楼主  发表于: 2009-09-03
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
我把终端的标准输出用QProcess::ReadAll()读取进来,我查过该函数返回的内容是QByerArray类型,但我把返回的内容用QTextEdit::append()放到QTextEdit上,显示的是乱码,

应该如何修改?
[ 此帖被iiiyyyhhhsss在2009-09-03 12:36重新编辑 ]
离线dbzhang800

只看该作者 1楼 发表于: 2009-09-03
把 QByteArray 转成 QString 然后再显示!
(转换时稍微考虑下QByteArray中中文采用的编码)
离线iiiyyyhhhsss

只看该作者 2楼 发表于: 2009-09-03
我试过很多方法了,还是不行。。。

我是在linux下,因此QByteArray里装的是UTF8编码,我试过下面三行代码,也不行:

const QByteArray data=L7_filter->readAll();
   QTextCodec *mycodec=Qt::codecForHtml(data);
    m_ui->textBrowser->append(mycodec->toUnicode(data));

能否帮我看看。。。。
离线iiiyyyhhhsss

只看该作者 3楼 发表于: 2009-09-03
    QTextCodec *tc =QTextCodec::codecForName("UTF-8");
    QByteArray ba = L7_filter->readAll();
    m_ui->textBrowser->append(tc->toUnicode(ba));


成功!!
[ 此帖被iiiyyyhhhsss在2009-09-03 20:03重新编辑 ]
离线myue_23
只看该作者 4楼 发表于: 2009-09-03
UTF-8   tr();
离线iiiyyyhhhsss

只看该作者 5楼 发表于: 2009-09-03
楼上的意思是?
离线myue_23
只看该作者 6楼 发表于: 2009-09-03
好像以tr("****")这种方式的字符串就可以显示中文了 但是直接用这个字符串不行
uft-8的使用和你代码里的一样
快速回复
限100 字节
 
上一个 下一个