专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Symbian

一些局部变量定义为中文,为什么在手机上为乱码?而在Series60_v21_C的中文模拟器中显示正常?该怎么处理

发布时间:2010-05-30 00:31:49 文章来源:www.iduyao.cn 采编人员:星星草
一些局部变量定义为中文,为什么在手机上为乱码?而在Series60_v21_C的中文模拟器中显示正常?
局部变量或成员变量如果定义为中文字符的话,怎么在手机中正常显示呢?
这个应该和资源的中文版是两回事儿吧?

比如说:
_LIT(message,   qtn_appl_add);
CAknInformationNote*   informationNote   =   new   (ELeave)             CAknInformationNote;
informationNote-> ExecuteLD(message);

结果在Series60_v21_C的中文模拟器中显示正常,安装到手机中显示乱码,请问怎么解决?
当前系统:WinxpSp2英文版,
S60   sdk   为;Series60_v21_C,
ActiveState   ActivePerl   5.8,
java   :jre1.5.0_11

------解决方案--------------------
在rss文件定义如下:
RESOURCE TBUF r_str0 { buf = "正在呼叫。。。 ";}

在cpp文件:
TBuf <32> message;
iEikonEnv-> ReadResource(message,R_STR0);
CAknInformationNote* informationNote = new (ELeave) CAknInformationNote;
informationNote-> ExecuteLD(message);


------解决方案--------------------
看下ReadResource函数要求传入什么编码。。是UTF8还是UNICODE,代码中用到中文字串时与其保持一致就行了,建议最好做成资源文件,代码中读入,方便以后更改转换
------解决方案--------------------
少量中文的话,可以在字符串里使用该中文的unicode编码。
如:_L( "中文 ") -> _L( "\4ed2\6587 ") 注意:字节的高低位顺序
如果大量使用的话,一般在资源文件中定义。资源文件要使用utf8编码方式保存。
------解决方案--------------------
Jeff的方法是可行的

还要记得在rss文件中加入: CHARACTER_SET UTF8

就ok了
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: