首页 > 代码库 > Android socket 使用PrintWriter和BufferedReader发送和接收出现乱码问题解决
Android socket 使用PrintWriter和BufferedReader发送和接收出现乱码问题解决
项目中用到了Android和C++的通信,选择了用socket 发送字符的方式,一开始使用的代码是:
socket=new Socket(); InetSocketAddress isa = new InetSocketAddress(IP_STR, port); socket.connect(isa, 100); PrintWriter out=new PrintWriter(socket.getOutputStream(),true); BufferedReader recvBuf=new BufferedReader(new InputStreamReader(socket.getInputStream()));
使用这种方式无法设定字符集,无论是发送和接收如果跟服务器的字符集不同,都会出现乱码,
最后将程序改为:
socket=new Socket(); InetSocketAddress isa = new InetSocketAddress(IP_STR, port); socket.connect(isa, 100); PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"gb2312")),true); BufferedReader recvBuf=new BufferedReader(new InputStreamReader(socket.getInputStream(),"gb2312"));
我的服务器设定的字符集是gb2312。大家可以根据自己的需要设定字符集,原则是自己发送和对方接收的字符集设定要一致,自己的接收和对方的发送字符集一致。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。