找回密码
 立即注册
收起左侧

text Browser读取txt文本文件的问题

3
回复
6061
查看
[复制链接]
累计签到:234 天
连续签到:1 天
来源: 2016-5-13 09:23:44 显示全部楼层 |阅读模式
5Qter豆
本帖最后由 神奇号 于 2016-5-13 11:32 编辑

我想用textBrowser显示txt文本内容,txt存储格式是ANSI,直接打开中文会显示乱码,需要转换成UTF-8才可以。
有什么办法让textBrowser控件打开UTF-8,中文不显示乱码

目前有一种办法:
我现在是这样做的,可以正常显示了,还有其他更好的办法吗
    QFile file("test.txt");
        if (file.open(QIODevice::ReadWrite | QIODevice::Text))
        {
            QTextStream stream(&file);
            const QString &text = stream.readAll();
            ui->textBrowser->setText(text);//覆盖跟新
            qDebug() << stream.readAll();
            ui->textBrowser->append(text);//不覆盖跟新
        }

回复

使用道具 举报

累计签到:103 天
连续签到:1 天
2016-5-13 09:50:04 显示全部楼层
你试试ui->textBrowser->setFont(QFont("Song Ti",16,QFont::Normal)
回复

使用道具 举报

累计签到:234 天
连续签到:1 天
2016-5-13 11:21:51 显示全部楼层
冷月有情 发表于 2016-5-13 09:50
你试试ui->textBrowser->setFont(QFont("Song Ti",16,QFont::Normal)

这个不行,只是把字体设置变了。
回复

使用道具 举报

累计签到:234 天
连续签到:1 天
2016-5-13 11:24:52 显示全部楼层
我现在是这样做的,可以正常显示了,还有其他更好的办法吗
    QFile file("test.txt");
        if (file.open(QIODevice::ReadWrite | QIODevice::Text))
        {
            QTextStream stream(&file);
            const QString &text = stream.readAll();
            stream.seek(0);
            stream.setCodec(QTextCodec::codecForName("utf-8"));
            stream.setGenerateByteOrderMark(true);
            stream << text;
            stream.seek(0);
            qDebug() << stream.readAll();
            //ui->textBrowser->append(text);//不覆盖跟新
            ui->textBrowser->setText(text);//覆盖跟新
        }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了