• 4540阅读
  • 2回复

为啥这么简单的中文输出都会出错 [复制链接]

上一主题 下一主题
离线cnhome
 
只看楼主 倒序阅读 楼主  发表于: 2010-04-23

在Qt Creator里边写了个简单的程序(环境 windows xp,Qt 2010.02.1)

#include <QString>
#include <QTextStream>
#include <QTextCodec>

int main(int argc,char** argv)
{
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB18030"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB18030"));
    QTextCodec::setCodecForTr(QTextCodec::codecForName("GB18030"));

    QString name = "测试一下中文";
    QTextStream out(stdout);
    out<<name<<endl;
    out.flush();
    return 0;
}

Debug通过并且Application Output显示中文正常。然后做了release,把相关的dll拷贝至编译结果目录,在命令行下运行,居然输出都是空白的。请问各位这是咋个问题?!

怎样才能解决呢?!
离线cnhome
只看该作者 1楼 发表于: 2010-04-23
自己找到了答案,做个正解

在.pro中加上:

win32:CONFIG += console


转自 http://blog.csdn.net/heavywater/archive/2010/04/15/5489108.aspx

原文:

QT的缺省工程在Windows下无法输出到控制台,给调试带来一定不便。

在.pro中加上:

win32:CONFIG += console

后就可以用printf啦!!!

当然还要

#include <stdio.h>


评论:其实用QTextStream就没有必要用#include <stdio.h>了

特此作结。
离线tingsking

只看该作者 2楼 发表于: 2010-05-07
command line是不能decode unicode的字符串,需要encode成gbk
我的blog:http://blog.csdn.net/tingsking18
http://blog.csdn.net/tingsking18
快速回复
限100 字节
 
上一个 下一个