中文的编码常用的有3种格式:1)gb2312(就是ascii码方式,也说ansi) 2)unicode 3)utf-8

c++一般采用ancii码,而java一般采用unicode,而SymbianC++(以后简称symbian)采用unicode或utf-8

比如汉字“好”: unicode为“7D 59”,而ascii为“BA C3”, utf-8编码为3个字节。

终端你可以选择使用char *, unsigned char *, 但是这不是推荐使用的,很多时候处理的时候如界面等需要转化为终端的字符编码格式。

现在分4部分讲解字符编码转化(例子假设,java和symbian间采用utf-8,c++和symbian之间采用ASCII码):

1) Symbian -> Java 发送含有中文的消息

我们假设你的Symbian的发送消息的接口采用的是HBufC8 * (utf-8)

那么你在发送你的消息之前,需要将数据转化为utf-8格式,

例如,你可以使用CnvUtfConverter::ConvertfromUnicodeToUtf8()将界面的TBuf转化为8位的utf-8格式,转化过程中你要尤其注意,为HBufC8 * 开辟的内存应该是TBuf长度的2倍!

至于终端如何处理Java端发送的消息就不言而喻了,Java通常会只发送一个String,

也就是一个Unicode字符串,这个时候一般Symbian会以TDes8接收,实际上接收的数据是Unicode的而不是utf-8的,但是

Symbian支持这种格式,所以可以直接就按这种方式处理,而不需要转化。当然,要在界面上显示的话还是需要CnvUtfConverter::

ConvertToUnicodefromUtf8())

2) Java -> Symbian 发送含有中文的消息

服务器端

当然也要处理中文了,刚才已经说了,发送的时候你可以直接发送String

(Unicode),让Symbian去解析,但是接收就得十分小心!!终端Symbian过来的是HBufC8*

(utf-8)格式,Java切忌不要直接用String去接收,需要按字节接收,然后再将这些字节解析成utf-8,再转化为String,有几条简单

的语句可以完成这个操作:

byte b3[] = ...; //来自Symbian的utf-8字节

DataInputStream dis=new DataInputStream(new ByteArrayInputStream(b3));

String chinastring = dis.readUTF();

3) Symbian -> C++ 发送含有中文的消息

现在我们再来讨论下,如何将Symbian的消息发送给C++子系统呢, 显然,C++子系统是按照char */unsigned char *处理字符串的,也就是ASCII码方式(中文就是扩展的ANSI即GB2312�

c++与java中文互转_java与C++中文字符的问题相关推荐

  1. java统计词频算法_java实现的统计字符算法示例

    本文实例讲述了java实现的统计字符算法.分享给大家供大家参考,具体如下: 统计字符: 概述:给定字符串,将它们进行分类,分别的去统计它们的个数及其字符 分类的有:字母 数字 中文 空格 等等 算法思 ...

  2. java做jsp问题_java/jsp中 中文问题详解

    java/jsp中 中文问题详解 更新时间:2006年10月13日 00:00:00   作者: 预备知识: 1.字节和unicode Java内核是unicode的,就连class文件也是,但是很多 ...

  3. eclipse的java帮助文档_java在Eclipse中文apidoc帮助文档导入.doc

    今天一下午都在整java的api. 我的目标是在eclipse平台中用鼠标点击java的api就会自动显示出中文的注释.并且能在help中方便地搜索java的api. 这其实是使用bada开发平台后留 ...

  4. java怎么获取中文首字母_Java如何获取中文拼音首字母的方法介绍

    下面小编就为大家带来一篇java获取中文拼音首字母的实例.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 如下所示: import net.sourceforge.pin ...

  5. java首字母排序_Java实现按中文首字母排序的具体实例

    这篇文章主要介绍了Java实现按中文首字母排序的具体实例,有需要的朋友可以参考一下 要实现"按中文首字母排序"操作,可以使用java.util包下的Arrays类的sort()函数 ...

  6. java实现字母排序_Java实现按中文首字母排序的具体实例

    要实现"按中文首字母排序"操作,可以使用java.util包下的arrays类的sort()函数. arrays类包含用来操作数组(比如排序和搜索)的各种方法. 比如对于排序操作的 ...

  7. java连接mysql乱码_java链接mysql 中文乱码

    {转!} 背景: 由于最近在开发一个APP的后台程序,需要Java连接远程的MySQL数据库进行数据的更新和查询操作,并且插入的数据里有中文,在插入到数据库后发现中文都是乱码.网上查了很多教程,最后都 ...

  8. java 中文转码_java 下载文件中文名称转码详解

    String userAgent = request.getHeader("User-Agent").toLowerCase(); if(userAgent.contains(&q ...

  9. java写入excel乱码_java 导出excel中文乱码的问题

    最近在网上看到一个用java来操纵Excel的open source,在weblogic上试用了一下,觉得很不错,特此向大家推荐一下. 写一个javaBean,利用JExcelApi来动态生成exce ...

最新文章

  1. 9名华人当选,包揽总人数1/6!2017 ACM Fellow名单公布,华人强势亮相
  2. linux在文档中查找内容,【Linux】用grep在文档中查找内容
  3. how to add one row in the dataframe?
  4. SQL反模式笔记7——多列属性
  5. Java循环案例-求PI值
  6. HttpClient 4 API –获取状态码-getStatusLine()。getStatusCode()示例
  7. jxl导入/导出excel(网上的案例)
  8. Jupter 在windows下的运行
  9. javasript ide
  10. 微信小程序开发——以简单易懂的浏览器页面栈理解小程序的页面路由
  11. Linq的Distinct方法的扩展
  12. python 导入数据集并画图_python matplotlib画图教程学习:(三)IRIS数据集作图
  13. PCI及PCIe基本知识
  14. Android 7.1开机之后APN的加载及拨号上网流程分析
  15. html操作sqlite,JavaScript操作sqlite
  16. 【NX2023/1847】UG软件安装详细指南教程
  17. java毕设项目燕理快递中转站系统设计与实现(附源码)
  18. 计算机联锁验证实训报告心得,计算机实训心得体会(通用5篇)
  19. 04_dubbo_ioc
  20. CUMT 1031 Order

热门文章

  1. findViewById报空指针异常
  2. 基于JAVA+SpringBoot+Vue+Mybatis+MYSQL的物资管理系统
  3. java复制和上传_java文件上传复制等功能
  4. python之Django学习笔记(五)---后台(admin.py)Action使用
  5. 【高级】分表和分区的区别、分库分表介绍与区别
  6. java内存管理之内存模型
  7. 当对象转换成JSON的时候处理时间格式
  8. 学生管理系统(简易)7/26
  9. DDMS工具使用(转)
  10. 1701. Ostap and Partners(并查集-关系)