在windows下用qt写的程序的中文注释在Ubuntu下qt creator显示乱码?
windows的中文编码是GB2312,ubuntu9.04下的是utf16。所以乱码。解决方法是在qt creator中选择文档的编码是GB2312。
windows下qt creator编写的程序如何在linux下执行??
Windows下是ANCII编码的,Linux下是Unicode编码的,源程序注意转化一下编码就可以了。
fedora12下面,你可以去Qt的官方网站下载rpm安装包或者在在线软件仓库里找找啊。
Qt Creator在Windows下和在Linux下的用法基本一样,就是注意以下源文件的字符编码就OK了。还有Linux下的文件名连后缀都是区分大小写的,所以一些涉及到文件读写的程序,后缀名也要注意一下。
1、 把在windows平台下,用Qt Creator创建好的工程整个文件夹拷贝到linux系统下(如果是在虚拟机下安装的linux,可以用U盘拷贝或者共享文件夹的方式)。
2、 修改文件夹及文件夹下所有文件的访问权限。首先,切换到文件夹所在的目录(我的在/home/exam下),然后再修改访问权限,命令如下:
chmod -R 777 文件夹
假定我的文件夹叫mainWindow,那么命令为:chmod -R 777 mainWindow
如下图:
修改访问权限后,可以用命令:ls -l mainwindow 查看修改之后文件的属性。
3、 打开Qt Creator,如下图:
点击“Open Project...”打开拷贝过来的工程mainWindow。如下图:
打开工程之后,随便打开一个工程中的头文件或者源文件,如果编辑器的顶部出现错误提示:
表明文件中含有编辑器无法识别的字符,一般是在Windows平台下输入的中文字符,你会发现文件中的中文字符全部变成了乱码。此时,编辑器无法修改文件的内容。这是因为两个系统使用的默认编码不同造成的。这时,点击上图中错误提示中的“Select Encoding”按钮(或者通过选择菜单“Edit”下的“Select Encoding”按钮),弹出一个文本编码的对话框,如下图:
选择“GB2312”,点击按钮“Reload with Encoding”根据编码重新载入文件,即可显示文件中的中文字符。
如果弹出的文本编码对话框中没有“GB2312”,说明QT Creator 默认没有加载相关的dll文件(在linux下后缀名为.so),解决方案如下:
第一步:根据Qt Creator的安装目录,打开路径
“QtSDK\Desktop\Qt\473\gcc\plugins”发现里面有一个“codecs”文件夹,其下有四个文件,如下图:
红色框中的是路径,绿色框中的为四个编码库文件。
第二步:把codecs整个文件夹拷贝到目录“QtSDK\QtCreator\bin”下,拷贝之后如下图:
红色框中的是路径,绿色框中的为拷贝来的文件夹。
第三步:重新打开Qt Creator,打开一个文件,选择“Edit”菜单下的“Select Encoding...”,此时弹出的文本编码对话框中就已经出现了“GB2312”。
4、编译程序。
因为在windows平台下配置的编译路径在linux中无效,所以在进行编译之前,一般要先对工程进行配置,如下图:
如图所示,点击左边的“Projects”按钮,即可弹出项目配置界面,可以在上面的“Edit Build configuration”中选择Debug或者Release,在下面的“Build directory”中选择新的编译路径。
路径配置完成之后,就可以对程序进行调试运行,如下图:
红色框中的是运行按钮,绿色框中的是调试按钮,点击绿色框中的按钮,开始调试运行。调试通过,程序正常运行,如下图(我的是一个文本编辑器程序):
这时会发现程序中有乱码的情况,研究发现是程序中直接使用的中文字符串没有显示出来。
解决方案是在主函数中加入相应的字库,如下所示:
添加一个头文件#include <QtextCodec>,添加了图中红框中的两行代码,再次编译运行程序,如下:
程序正常运行。