• 4530阅读
  • 2回复

[提问]readLine读写文本文件出现乱码? [复制链接]

上一主题 下一主题
离线zealane
 

只看楼主 倒序阅读 楼主  发表于: 2009-06-11
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
程序段是这样的:
    QString filename="config.1";
    QFile file (filename);
        if(file.open(QIODevice::ReadOnly|QIODevice::Text)) {
            QTextStream in(&file);
            qDebug("Read config file %s",filename.toStdString().data());

            while (!in.atEnd()) {
                QString line=in.readLine();
                const char *data = line.toStdString().data();
                qDebug("line : \n %s",data);
              //  (void)readConfigItem(data);
            }
        }
        else {
            qWarning("read config error");
        }


文本里的内容是
#[head]amount:1

但是运行程序后,输出:
#[head]
J?     `tl

文本编码格式UTF-8的,如果将第二行的数字1去掉,则程序显示正确。
用line.toUtf8().data(),line.toLocal8Bit().data也都不行
不知何故?
谢谢!
离线shiroki

只看该作者 1楼 发表于: 2009-06-11
你给textstream设个utf8编码试试看呢?
QTextStream out(&file);
out.setCodec("UTF-8");
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线zealane

只看该作者 2楼 发表于: 2009-06-23
知道了,谢谢。
快速回复
限100 字节
 
上一个 下一个