|
发表于 2014-11-2 11:31:59
|
显示全部楼层
乱码很好解决. 几条思路.
1: tr() 如果你不想国际化(多语言), 那么就不要用tr, 使用QString::fromLocal8Bit()(如果源文件是ANSI编码), QString::fromUtf8()(如果源文件是UTF-8编码, 推荐这个). QStringLiteral()之类的.
2: 如果要国际化, 即使用了tr, 那么强烈推荐源文件中不要使用中文, 只使用英文. 由英文翻译成别的语言是更多通用的做法. 而且这样做还有一个问题由Desinger, ui文件自己生成的源文件里面的中文字符是转义字符. 翻译很麻烦(类似\0x85\0x86之类的).
3: 鉴于以上两点, 不管您用不用tr, 考不考虑国际化. 推荐使用utf-8编码. 但是MS对utf的支持不太好.
VC2010 的话, 需要文件保存为带BOM 的utf-8编码. 然后源文件中包含杂注 #pragma execution_character_set("utf-8")
vc2013的话, 只需要保存为带bom的UTF-8编码即可. 无需包含杂注.
vc2012的话. 以上两种都不行, 我的做法就是不用vc2012, 或者是全英文代码, 然后ANSI编码
其它版本的vc没用过, 具体未知. |
|