局部变量或成员变量如果定义为中文字符的话,怎么在手机中正常显示呢?
这个应该和资源的中文版是两回事儿吧?
比如说:
_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了