用Qt Creator 编写GUI程序, 源代码用UTF-8编码, 如何用qDebug()输出中文?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Qt Creator 编写GUI程序, 源代码用UTF-8编码, 如何用qDebug()输出中文?相关的知识,希望对你有一定的参考价值。

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
qDebug() << "中文";

调试时输出是乱码.

我试了几种方法, 好像只有打开console才正常, 但我的是GUI程序, 不能带console.
忘了说了, 我用的是mingw 4.6.1

qDebug() <<QObject::tr("好多");
这样用就可以不出乱码了。
直接写 qDebug()<<"好多";的话我也是乱码
差点忘了。我这边编码方式是"utf-8".即
QTextCodec::setCodecForLocale(QTextCodec::codecForName("utf-8"));
确切地说是工具-》选项-》文件编码里的默认编码要支持中文的。然后写成一致的就不会乱码了。请给分。谢谢
参考技术A 有人知道怎么做吗,我也遇到同样的问题了,二楼的解决方法2种我都没找到在哪个地方设置的。我的GUI显示中文没有问题,但是qDebug()<<"中文显示"的时候是乱码。但是我新建了一个工程又没有问题?求解 参考技术B /*设置编码*/
QTextCodec::setCodecForLocale(QTextCodec::codecForName("gbk"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("gbk"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("gbk"));
你试试,是可以的!追问

好像不行. 忘了说了, 我用的是mingw 4.6.1

追答

由于源码文件使用的是GBK编码
解决方法1:
如果不修改源码文件编码,那么在CodeBlocks内settings->Compiler and debugger,Other option指定使用中文编码(加上-finput-charset=GBK),就可以在源代码内使用中文了.

解决方法2:
Code::Blocks主菜单“设置→编辑器 ”,弹出的对话框中,左边列表选中第一项“常规设置”,右边面板中找到“打开文件时的默认编码”项,将其选项改为“UTF-8”。

Qt creator 如何设置静态编译

Qt默认的编译方式是动态编译的,但是有时候你编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译你的程序,Qt要实现静态编译必须库文件也是静态编译的,可以用这个命令编译静态库: 1.将C:\Qt\2010.05\qt\mkspecs\win32-g++文件中的QMAKE_LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc 改为 QMAKE_LFLAGS = -static -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc2.在开始菜单里找到Qt Command Prompt并运行,输入命令: configure -static -debug-and-release -no-exceptions -L "C:\Qt\2010.05\qt\include" -L "C:\Qt\2010.05\qt\lib"-L指定一下路径,防止用到vc的头文件选择开源:O;选择license:y; 3.上一条命令运行成功后再输入命令: mingw32-make sub-src等1 ~3 小时可能就运行完了 完成后就ok了。。。 参考技术A   Qt默认的编译方式是动态编译的,但是有时候编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译程序,Qt要实现静态编译必须库文件也是静态编译的,可以用这个命令编译静态库:
  1.将C:\Qt\2010.05\qt\mkspecs\win32-g++\qmake.conf文件中的QMAKE_LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
  改为
  QMAKE_LFLAGS = -static -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
  2.在开始菜单里找到Qt Command Prompt并运行,输入命令: configure -static -debug-and-release -no-exceptions -L "C:\Qt\2010.05\qt\include" -L "C:\Qt\2010.05\qt\lib"
  -L指定一下路径,防止用到vc的头文件
  选择开源:O;选择license:y;
  3.上一条命令运行成功后再输入命令: mingw32-make sub-src
  等1 ~3 小时可能就运行完了 完成后就可以了。
  

以上是关于用Qt Creator 编写GUI程序, 源代码用UTF-8编码, 如何用qDebug()输出中文?的主要内容,如果未能解决你的问题,请参考以下文章

ROS:使用Qt Creator创建GUI程序

ROS:使用Qt Creator创建GUI程序

使用 Qt gui 绑定 C 代码 [重复]

如何在 qt creator 中为 cdb 编写调试助手?

使用 taglib 导致 Qt Creator 程序崩溃

Qt creator 如何设置静态编译