Symbian 对中文资源的解决方案
2010-02-03 08:01:00 来源:WEB开发网字符串编码中文表示常用的有:GB2312,GBK,Unicode,UTF-8
其中GBK是GB2312的超集,也就是涵盖了GB2312编码的所有内容,UTF-8是Unicode的在网络传输中的一种编码格式,如果我们使用vc做为开发工具,在win下面进行开发,那么win的默认字符集是GBK的,而symbian系统默认的编码方式却是Unicode,也就是说直接写在程序里面的汉字在手机上显示的时候,就会变成乱码。
通常解决这个问题的方法有两种:
(1)静态资源文件解决方案
(2)动态的调用字符集转换函数解决方案
对呀第一种解决方案来说,需要手工编辑rss文件,把汉字内容部分改为UTF-8格式,在rss文件的末尾或者开头添加:CHARACTER_SET
UTF8
具体步骤如下:
首先确定你是模拟器是中文,如果不是的话在开始菜单里面有设置Language的,换成中文就可以了;
然后你在用carbide或者是vs新建工程的时候选择中文,语言代号为31;
要在程序中显示中文,参考下面的代码:
TBuf <32> nameText;
CEikonEnv::Static()->ReadResource(nameText, R_NAME_TEXT);
gc.UseFont(iCoeEnv->NormalFont());
TPoint namePoint(aRect.Width()/5*3, aRect.Height()/4);
gc.DrawText(nameText,namePoint);
.rss中
#include "project.loc"
RESOURCE TBUF32 R_NAME_TEXT { buf=qtn_wp_name_text; }
.loc中
CHARACTER_SET UTF8
#define qtn_wp_name_text "中文"
很简单的一个处理就可以。
切忌在打开资源定义文件的时候改变编码,那样你会后患无穷的。
如果你一开始在建工程的时候就不是选择的中文的话,那么按下面的方法解决:
打开你的mmp文件,在里面最后加上一行LANG 31,如果以前有LANG SC就注释掉;
然后在你的资源定义文件开头加上CHARACTER_SET UTF8;
然后用文本文件方式打开,另存为,选择UTF-8字符编码的;
最后用编辑器打开,确定里面开头的部分没有乱码,要是开头的时候有就删除。
更多精彩
赞助商链接