softfun 发表于 2013-5-22 21:59:58

中文编码-linux/XP/Win7等相关

昨天偶尔到客户现场,发现一个以前的QT项目的一个问题:
调度程序在现场设备上(linux内核裁剪)和管理机器(WinXP系统)上运行都没有问题,用我随身带的笔记本(Win7)运行时出现问题:一些场景的中文变为乱码,一些场景的中文则显示正常。

回来后检查代码后确定了几个方面:
1、代码中使用GBK编码-最初约定,涉及多方面;
2、本地化方面有一些问题--部分地方存在tr内有中文的现象,这些地方无论是否翻译(lupdate 和lrelease)在win7下都是乱码;用英文经过本地化翻译的地方则没有问题;(这点也是个提醒)
3、一些从网络或文件中接收读取到的中文内容在win7下显示乱码(经过QString::fromLocal8Bit处理);
4、UI中的中文无论在哪个系统下均正常(UTF-8)

因为没用过win7,搞不清楚问题出在哪,开debug一检查,立马就发现:
在win7下 :
QTextCodec *codec = QTextCodec::codecForName("GBK");
结果:NULL == codec
问题出在这,用QTextCodec::codecForLocale()处理一下即可。。。

ztzheng 发表于 2013-5-22 22:28:54

大哥,你发错位置了,这里是问答区。。。
页: [1]
查看完整版本: 中文编码-linux/XP/Win7等相关