基于mina服务器框架在android客户端接中文收不到消息以及发送不出中文的的问题


近期做一个轻型的网游项目,初次接触,在mina传输上遇到个头痛的问题,做下记录

在swing端各方面测试都没有问题,但在android客户端却怎么也接收不了服务器那边的消息


很是奇怪,从网络、ip等方面都有考虑来解决,但无果

最终发现英文的消息则能接收,中文则不行,接着开始着手编码相关问题

// 创建客户端连接器. 
NioSocketConnector connector = new NioSocketConnector(); 
connector.getFilterChain().addLast( "logger", new LoggingFilter() ); 
connector.getFilterChain().addLast( "codec", new ProtocolCodecFilter( new TextLineCodecFactory())); 

结果确实是编码问题,最终加上编码过滤器来解决中文的支持

connector.getFilterChain().addLast( "codec", new ProtocolCodecFilter( new TextLineCodecFactory( Charset.forName( "UTF-8" )))); //设置编码过滤器 

很二的错误,接触新的东西还是要多去了解了解才行呀。哎

另外后期制作中发现androd客户端发送中文,服务器又接收不到了,改了编码后 接收到的又是乱码

研究了好久最后使用转码来解决该问题:android客户端将中文信息用URLEncoder.encode(jsonObject.toString());进行转码发送,服务器用URLEncoder.encode对应进行解码。

虽然不知道有更好的方法来解决这个问题,但该方法也总算解决了中文问题


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值