QT的跨平台开发问题(1)文件编码
1.综述
在不同版本的QT、不同的编译器以及不同操作系统下,如果代码文件中有中文或者非纯英文,那么有的时候会编译不过或者程序运行时有乱码。为了程序正确,有时就需要转换代码文件的字符编码。
以下是我总结的几类不同QT、编译器和操作系统下的代码文件的需要的字符编码。
序号 |
QT版本 |
编译器 |
字符编码 |
1 |
QT4 |
VS2008 |
ANSI |
2 |
QT5 |
VS2015 |
UTF-8-BOM |
3 |
QT4/5 |
GCC |
UTF-8 |
2.工具
使用notepad++可以装换编码,安装插件后就可以批量装换整个工程的所有代码文件。
所需的notepad++版本一定是32位版本,插件是Python Script,具体的方法可以参考notepad++批量转换文件编码,我已经把配置好的notepad++上传到https://download.****.net/download/no2101/12394396,大家可以下载。
3.使用
(1)nodepad++最好设置成英文。
(2)脚本文件位置位于
Notepad++\plugins\PythonScript\scripts
可以自己添加
(3)可以打开脚本并脚本,亦可以把脚本放到工作区中。步骤如下:
a)打开工作文件夹
b)工作区,右键
c)选在脚本文件位置
d)就可以查看和修改脚本文件了
(4)脚本修改
import os;
import sys;
filePathSrc="D:/Qt" #项目文件夹
for root, dirs, files in os.walk(filePathSrc):
for fn in files:
if fn[-2:] == '.h' or fn[-2:] == '.c' or fn[-4:] == '.cpp': # 装换的代码文件类型
notepad.open(root + "\\" + fn)
notepad.runMenuCommand("Encoding", "Convert to ANSI")
#notepad.menuCommand(MENUCOMMAND.FORMAT_TOUNIX)
#notepad.menuCommand(MENUCOMMAND.FORMAT_TOMAC)
notepad.menuCommand(MENUCOMMAND.FORMAT_TODOS)
notepad.save()
notepad.close()
(5)运行脚本
这样你的代码既可以转成你希望额字符编码了。