由于用到 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 写入汉字相关推荐

  1. OpenCV实现在图像中写入汉字

    由于OpenCV自带的cvInitFont和cvPutText函数不支持向图像中写入中文,参考http://www.opencv.org.cn/forum/viewtopic.php?t=2083 中 ...

  2. c++在csv写入汉字_python-opencv表格识别转csv

    最近学习了一下opencv,做了个简单的小东西,就是识别图片中的表格,识别完成后再把数据写入到csv中保存起来. 环境准备: 下面先说下我们应该要准备下啥环境: 1.python安装完成(笔者pyth ...

  3. php制图汉字,PHP用imageTtfText函数在图片上写入汉字

    PHP绘图,imageString()这个函数并不支持汉字的绘制.这往往会给入门者当头一棒,不过不要着急,因为还有一个imageTtfText()函数,这个函数能绘制UTF-8编码的字符串,当然可以绘 ...

  4. 【python】解决给文件写入汉字,中文字符乱码问题

    python如果用open()方法打开文件,默认会指定Ascill码来编辑输入字符.但是如果你用UTF-8的方式打开文件,由于字符集不匹配的原因,导致中文会乱码.解决乱码的方法也很简单,只需要关掉As ...

  5. opencv 显示中文汉字(添加中文支持)

    文章目录 利用CvxText和FreeType库 编译安装FreeType库 CvxText 支持IplImage 支持Mat CvxText和FreeType库使用 重写putText函数 open ...

  6. [matlab]用matlab建立word,并在word中写入文字和图片

    在matlab中建立word try%若word服务器已经打开,返回其句柄WordWord = actxGetRunningServer('Word.Application'); catch%创建一个 ...

  7. java io字符输出流_【Java的IO流之文件字符输入输出流 25】

    一.FileReader:读取字符流:FileWriter:写入字符流 字符流可以读取和写入汉字和英文,字节流不能读取和写入汉字 二.FileReader流 1.常用的构造方法 FileReader( ...

  8. python中文件读写位置的作用-Python中文件的读写、写读和追加写读三种模式的特点...

    本文主要讨论一下文件的三种可读可写模式的特点及互相之间的区别,以及能否实现修改文件的操作 由于前文已经讨论过编码的事情了,所以这里不再研究编码,所有打开操作默认都是utf-8编码(Linux系统下) ...

  9. Spring MVC -- 国际化

    在全球化的今天,现在比过去更需要编写可以在不同语言国家和地区部署的应用程序.在这方面,需要了解两个术语: 国际化:常常缩写为i18n,因为其单词internationalization以i开始,以n结 ...

最新文章

  1. matlab撤销上一步命令_CAD快速入门技巧:CAD软件中撤销操作的方法汇总
  2. DCMTK:OFpath和相关内容的测试程序
  3. selenium webdirver之rdoc使用
  4. 富文本编辑器、日期选择器、软件天堂、防止XSS攻击、字体icon、转pdf
  5. lstm模型java实现_如何在Keras中构建LSTM分类器模型
  6. 访问linux端口失败_教你如何配置Linux服务器防火墙端口规则
  7. _itoa_s替换 itoa
  8. js获取浏览器的宽度和高度
  9. 南开100题C语言(011-020)
  10. 人民币符号是什么 人民币符号怎么打
  11. gentoo linux软件安装,Gentoo Linux 快速安装方法安装
  12. python 爬取doc文档
  13. oracle新书 罗敏_Oracle Acs资深顾问罗敏 老罗技术核心感悟:分表还是分区?
  14. java错误代码查询_在Java代码中调用SPARQL查询(在DBPedia上)时出现HttpException错误...
  15. 转:长篇小说《七月七日晴》(超感人的)(上)
  16. 这些开源项目,值得收藏深入研究
  17. 人工神经网络评价法案例_人工神经网络应用实例
  18. 【Google】谷歌浏览器背景颜色变黑
  19. [Swift]UITextField在左侧添加内边距或图标
  20. 第六讲 典型相关性分析

热门文章

  1. APP技巧:电脑登录微信,要删除这5个文件!否则别人能查看聊天记录
  2. 一篇文章,了解清楚路由器的各种组网
  3. 盘点十个超级实用的 JS 特性
  4. java文件流null_JAVA 获取资源文件对象为NULL
  5. 天大18年c语言离线作业,天大18秋C语言程序设计在线作业一辅导资料.docx-资源下载在线文库www.lddoc.cn...
  6. net以execl做数据库_[原创]Net实现Excel导入导出到数据库(附源码)
  7. src与href属性的区别
  8. 2021 年 JavaScript 大事记
  9. Spring Cloud-鸿鹄Cloud分布式微服务云系统—架构图
  10. Android中文API-ViewStub