socket通信传递中文出现乱码

服务端使用JSP,客户端为Android,通过socket通信传递数据时遇到中文乱码问题。在将数据插入MySQL时正常,发布后乱码出现。解决方法是在服务端和客户端设定统一的字符编码为utf-8,确保传输过程中编码一致。

服务端为JSP,客户端为Android。未将服务端发布时,在程序里数据能正常插入到mysql,发布后,数据使用socket通信传递,然后传中文出现乱码了。如果我把思路理清一些的话,应该很快能找到问题所在并解决问题的,可是啊!!!终究还是浪费了好多时间去解决。


解决方法,在服务端和客户端传输的时候都加上一个编码指定,我的是utf-8。

服务端:


public static final String bm="utf-8"; //全局定义,以适应系统其他部分 

BufferedReader in = new BufferedReader(new InputStreamReader(
process.getInputStream(),bm));
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(process.getOutputStream(),bm)),true);

客户端:
public static final String bm="utf-8"; //全局定义,以适应系统其他部分 
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream(),bm)),true);
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream(),bm));

参考文章:
http://blog.sina.com.cn/s/blog_49f485700100qdt2.html

http://www.2cto.com/kf/201209/155337.html



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值