日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RFileWriteStream 写入汉字

發布時間:2023/12/9 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RFileWriteStream 写入汉字 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

由于用到 RFileWriteStream 寫入漢字到文件中,之前沒有處理過,等寫入文件后才發現是亂碼。

問了問群里的朋友也沒有解決,后來就上網搜,終于找到一個解決方法,就是用 CCnvCharacterSetConverter 類

這個類是用來轉換Unicode 與其它編碼的,symbian 用的是 unicode 編碼,轉成漢字,只需把 unicode 轉為 gbk

就可以了,別的不說了,看代碼吧,很簡單的

HBufC8*? tmpName;
??CCnvCharacterSetConverter* conv = CCnvCharacterSetConverter::NewLC();
??for(TInt i=0;i<sels->Count();i++)
???{
????TPtrC pId = (*this->iIdList)[i];
????TPtrC pName = (*this->iNameList)[i];
????TPtrC pPhone = (*this->iPhoneList)[i];
????
????if (conv->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk,
??????this->iEikon->FsSession()) !=CCnvCharacterSetConverter::EAvailable )
?????{
??????User::Leave(KErrNotSupported);
?????}
????// 這里多加了2個的長度,如果不添加上,試驗時發現少一個漢字
????tmpName = HBufC8::NewLC(pName.Length()+2);
????TPtr8? pTmpName = tmpName->Des();
???? ???conv->ConvertFromUnicode(pTmpName,pName);
????
????CXmlNode* aNode = node->AddChildNote(bufPhone);
????CXmlNode* idNode = aNode->AddChildNote(bufId);
????idNode->SetValue(pId);
????CXmlNode* nameNode = aNode->AddChildNote(bufName);
????nameNode->SetValue(pTmpName);?// 寫入 gbk 編碼
????CXmlNode* numNode = aNode->AddChildNote(bufNum);
????numNode->SetValue(pPhone);
????CleanupStack::PopAndDestroy();
????
???}
??CleanupStack::PopAndDestroy();?
??doc->SaveToFileL();

?

這里是主要的代碼,紅色標出是用到的轉換

?

?



安平2009@原創
qi_jianzhou@126.com

轉載于:https://www.cnblogs.com/zziss/archive/2010/07/12/1775927.html

總結

以上是生活随笔為你收集整理的RFileWriteStream 写入汉字的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。