免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1060 | 回复: 0
打印 上一主题 下一主题

关于手机汉字编码的对话 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-09 01:14 |只看该作者 |倒序浏览

【seakid】
最近作了一个汉字通信的试验,发现了点问题,跟大家交流一下,看看有没有大侠碰到同样的问题。有没有好的解决方案。
服务器端用writeUTF()发送汉字,手机端接收。在索爱P802上测试没问题,在索爱K506上测试也没问题。
手机端用writeUTF()发送汉字,服务器端接收。在索爱P802上测试没问题,但是完全相同的代码在索爱K506上测试就是不成功。
......
【seakid】
[color="#0000ff"]最近作了一个汉字通信的试验,发现了点问题,跟大家交流一下,看看有没有大侠碰到同样的问题。有没有好的解决方案。
服务器端用writeUTF()发送汉字,手机端接收。在索爱P802上测试没问题,在索爱K506上测试也没问题。
手机端用writeUTF()发送汉字,服务器端接收。在索爱P802上测试没问题,但是完全相同的代码在索爱K506上测试就是不成功。服务器返回的结果是参数接收失败。
后来改用将汉字作UTF-8编码再放在url里面传的方法,这回k506可以,但是P802又不行了。经测试,P802的UTF-8编码不正常,同样的代码,汉字编码后都成了3F3F。
我的问题是:各位大侠有没有哪位碰到跟我一样的问题?手机端和服务器端之间汉字的传送有没有一个与手机终端独立的通用的方案?还是这个问题根本就没有完美的答案呢?

【evzhy】
一个可能的解决方法是,
服务器发送汉字都成功,
但是接受汉字可能不成功,
说明服务器接受汉字的时候,
没有指出汉字编码,
可能用的是系统编码,
为此,
启动服务器的时候,
要加上编码,
如果你的服务器是java服务器的话,
还有一个解决方法,
就是一律用uicode双字节编码来发送接受
【seakid】
[color="#0000ff"]多谢evzhy的回复。不过我还是有点不明白:
1)用writeUTF()发送汉字的时候,汉字的编码是UTF-8格式的,是指定了汉字编码方式的。
2)同样的代码,同样的服务器,用P802测试是成功的。没理由怀疑服务器接收汉字有故障。
难道这样的问题要问厂家才有答案?

【evzhy】
那你可以写个服务器端测试程序,用ascii字节编码来接受,看看收到的是否真的是utf-8,有可能手机jvm的类库api出bug了
【seakid】
[color="#0000ff"]我写了一个测试程序,将汉字用UTF-8编码,然后在手机上把编码后的bytes显示出来(如1的编码显示31)。结果是:K506能显示英文数字和汉字,P802只能正常显示英文和数字,汉字显示3F。看过一些资料,知道是P802在处理汉字时前面错误地加了东西,写几行代码可以把加错的东西去掉,但是这好像不是办法呀。
我需要的是跨平台的汉字通信解决方案。
再次多谢老大的回复。

【evzhy】
你不要用utf-8了,
用非编码的字节流
【seakid】
[color="#0000ff"]这好像是唯一的办法。如果真是这样,很多东西要改了。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/11301/showart_55945.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP