注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

尐鬼じ☆ve伱

和你在一起的日子

 
 
 

日志

 
 

symbian乱码问题 (转)  

2012-04-27 18:02:27|  分类: symbian |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
http://wangjiajun53880.blog.163.com/blog/static/117001394201112121358801/

1.短信乱码解决

CSmsSettings& serviceSettings = iSmsMtm->ServiceSettings();
CSmsHeader& header = iSmsMtm->SmsHeader();
serviceSettings.SetDelivery(ESmsDeliveryImmediately);
serviceSettings.SetCharacterSet(TSmsDataCodingScheme::ESmsAlphabetUCS2);
header.SetSmsSettingsL( serviceSettings );
iSmsMtm->RestoreServiceAndSettingsL();

2.其他情况中文乱码,跟所在文件的编码有关:

如果文件编码为UTF-8:CnvUtfConverter::ConvertToUnicodeFromUtf8

如果文件编码为GBK:

ConvertToUnicode(TDesC8& aIn, TDes16& aOut)
{
 CCnvCharacterSetConverter* converter=CCnvCharacterSetConverter::NewLC();
 // Check if there is conversion between GBK/GB2312 and unicode 
 // if(converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGb2312,
 if(converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk,
  CEikonEnv::Static()->FsSession())!=CCnvCharacterSetConverter::EAvailable)
  User::Leave(KErrNotSupported);

 
 
    TInt state=CCnvCharacterSetConverter::KStateDefault;

 TPtrC8 source( str );
 HBufC* iInfoText = HBufC::NewL( source.Length() );
 TPtr16 ptr = iInfoText->Des();

 if(CCnvCharacterSetConverter::EErrorIllFormedInput == converter->ConvertToUnicode(aOut, aIn, state))
  User::Leave(KErrArgument);  //Leave if error in conversion.

 CleanupStack::PopAndDestroy();  //clean for converter
}


Symbian里面使用ConvertFromUnicodeToUtf8转换中文为什么是乱码?

[ 标签:symbian,中文,乱码 ]
Symbian里面使用ConvertFromUnicodeToUtf8转换中文为什么是乱码?转换英文是正常的。因为要把16位的Unicode汉字保存到文件,所以必须转换成UTF8。我现在使用的是RFile进行读写文件,RFile只支持8位的。
要先转到GBK的ANSI上,才能转UTF8,不能直接这么转的,如果你要直接转,就得先定下两个码表,更麻烦,所以先转到ANSI的话,他能自动在GBK BIG5 GB2312的UTF8 Unicode16自动转换。。。

Symbian中文显示

1.在xx.loc文件中加入中文字符串 
  例如: 
       #define qtn_aknexmenu_message_format  "你好啊" 
2.xx.loc文件头部加上 CHARACTER_SET UTF8 
3.在外部用记事本打开xx.loc文件,另存为utf-8格式 
  需要注意的是:再改为utf-8后文件前三个字节会出现乱码,直接在vs中 编译回报错,尝试在UltraEdit中删除前三个字节,但不起什么作用,后来在命令行中使用“edit”命令打开文件进行修改才成功 
   具体步骤: 
     ---->ctrl+r输入cmd进入命令行 
     ---->进入相应文件所在目录 
     ---->输入    edit 文件名(加后缀) 
     接下来就打开相应文件了,修改完毕后ALT+F选择保存即可 
4.同样在在xx.rss文件头部加上 CHARACTER_SET UTF8 
5.在vs中重新编译就没问题了 
  要注意的是:在一般模拟器中看不到中文,只有装到手机上才能看出来,在模拟器上显示的   
  应该是小方块 
  5.1生成sis文件(可装载到手机上的文件)步骤 
     要生成sis文件需要在命令行用到makesis命令,此命令在相应SDK的 
     series60_v20\epoc32\tools下 
     通过命令行定位到该目录这样可以保证调用的是相应版本的SDK的命令 
     在已编译的情况下,输入 --->makesis  文件所在全路径xx.pkg(相应的文件)即可
  评论这张
 
阅读(258)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017