中文显示问题

miyunhong 2008-02-22 11:07:00
问题:
中文在模拟器上可以显示,,但在真机上中文是乱码,,其他字符没问题


本人配置是:
VS2003, s60_2nd_fp2_sdk_ms_chinese,
真机是Nokia 6670


代码如下:

CWindowGc& gc = SystemGc();
gc.SetPenColor(KRgbBlue);
const CFont* iFont = iEikonEnv->TitleFont();
gc.UseFont(iFont);

_LIT (KString, "中线程 'Win32 线程' (0x840)");
TBuf16<100> buf(KString);
gc.DrawText(buf,TPoint(0,20));



多谢关注!
...全文
101 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cangwu_lee 2008-02-24
  • 打赏
  • 举报
回复
"中线程 'Win32 线程' (0x840)"
是ANSI的字符串,用 UNICODE 的字符串吧。
jqgsninimo 2008-02-24
  • 打赏
  • 举报
回复
您可以使用静态资源的方法显示字符串(这是能够解决您的问题的最简单方法):
1.在".rss"资源文件中,加入命令:

CHARACTER_SET UTF8

这保证您的资源文件采取UTF8字符显示.
2.在".rss"资源文件中,加入您想显示的字符串资源:

RESOURCE TBUF r_your_string
{
buf="中线程 'Win32 线程' (0x840)";
}

3.在".mmp"文件中,添加需要用到的LIBRARY:

LIBRARY commonengine.lib

4.在你的程序中使用以下命令将"字符串资源"加载进来:

/**
* 加载字符串资源.
* 注意:
* 1.在rss文件中定义的字符串资源的名称为小写形式,在程序中使用时要改为大写形式.
* 2.使用StringLoader类,需要添加LIBRARY:"commonengine.lib".
* 3.LoadLC函数会将构建的HBufC指针加入CleanupStack,所以用完后一定要清除.
*/
HBufC* yourString=StringLoader::LoadLC(R_YOUR_STRING); //+yourString
//使用载入的字符串
gc.DrawText(*yourString,TPoint(0,20));
//将yourString弹出CleanupStack并销毁
CleanupStack::PopAndDestroy(yourString); //-yourString

3,119

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧