ARCHYang 2015-11-29
最近在开发一个基于netty框架的项目服务端是用eclipse编程开发的,客户端使用androidstudio开发的
由于2个编码格式不一样所以造成了消息传递之间的中文乱码
解决办法
服务端在initChannel中声明:
//编码格式 arg0.pipeline().addLast(new StringEncoder(Charset.forName("GBK"))); //解码格式 arg0.pipeline().addLast(new StringDecoder(Charset.forName("UTF-8")));
客户端在initChannel中声明:
ch.pipeline().addLast(new StringEncoder(Charset.forName("UTF-8"))); ch.pipeline().addLast(new StringDecoder(Charset.forName("GBK")));
搞定!
这有一个编码转换的方法
String strGBK = URLEncoder.encode(str, "GBK"); System.out.println(strGBK); String strUTF8 = URLDecoder.decode(str, "UTF-8"); System.out.println(strUTF8);