我的QT程序编码设置

QT的编码是实在是个复杂的问题

我的环境,qt4.8+qtcreator2.4+vs2008+winxp(win7)

源代码文件编码,只有两个选择system或者utf8(带BOM) 

初步结论:

文件篇: 开发win32程序,首选使用system(如果msvc系列,system几乎是必然;gcc系列,可以不用,但对于rc等一些特定文件,还是需要system编码)

开发 linux程序,首选utf-8 ,其他的就不用考虑了

字符串篇:(a)全面使用QString,所有能使用的地方都用QString;

(b)如果可以用英文,那就全面使用英文,避免使用non-ascii字符;而对于界面部分,则采用qm翻译方案;

(c)使用QT_NO_CAST_FROM_ASCII 和 QT_NO_CAST_TO_ASCII,禁止char*和QString隐式互转;

(d)对于用户可见/需要翻译的部分,务必使用tr/QT_TR_NOOP等

(e)对于用户不可见/不要翻译的部分,统一用Latin1,并使用QLatin1String包括 

 ============================================

 

 方案一:windows+qt4+msvc20xx+win32程序

源代码文件:采用system编码

其他文件:采用system编码

用户可见部分文字:用本地语言,但一定tr/QT_TR_NOOP包括。——虽然不是正统方法,但还是可以用的

用户不可见部分文字:用Latin1,并且统一用QLatin1String包括 

指定QTextCodec三剑客,各种类型、函数均只使用QString 

推测:在不同语言系统中应该可以正常显示,但条件所限无法测试;

--------------------------------------------------------------------------------------------- 

方案二:windows+qt4+gcc+win32程序

源代码:utf-8

其他文件:system或者ansi

其他同方案一

---------------------------------------------------------------------------------------------- 

终极方案:全面E文话

所有文件,所有内容均采用E文,也就是仅使用ascii字符

用户可见部分:采用qm翻译 

所有字符串均只使用QString 

 

posted @ 2012-08-26 13:36  kevinzhwl  阅读(812)  评论(0编辑  收藏  举报