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()));
使用这样的方式无法设定字符集,不管是发送和接收假设跟server的字符集不同,都会出现乱码,
最后将程序改为:
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"));
我的server设定的字符集是gb2312。大家能够依据自己的须要设定字符集。原则是自己发送和对方接收的字符集设定要一致。自己的接收和对方的发送字符集一致。
Android socket 使用PrintWriter和BufferedReader发送和接收出现乱码问题解决的更多相关文章
- socket对于大数据的发送和接收
		大数据是指大于32K或者64K的数据. 大数据的发送和接收通过TSTREAM对象来进行是非常方便的. 我们把大数据分割成一个个4K大小的小包,然后再依次传输. 一.大数据的发送的类语言描述: 1)创建 ... 
- PHP+socket+SMTP、POP3协议发送、接收邮件
		.实现SMTP协议的类dsmtp.cls.php:<?php , $webname=).); } } .实现POP3协议的类dpop3.cls.php: <? ... 
- Android—Volley:接收服务端发送的json数据乱码问题解决
		new JsonObjectRequest中重写方法parseNetworkResponse,内容如下: /** * 重写此方法不会导致乱码 */ @Override protected Respon ... 
- android开发学习——Socket发送和接收
		client -- server发送过程中,涉及的输入流输出流: http://blog.csdn.net/dlwh_123/article/details/35982015 (良心好文) 需 ... 
- 一个Android Socket的例子
		1.开篇简介 Socket本质上就是Java封装了传输层上的TCP协议(注:UDP用的是DatagramSocket类).要实现Socket的传输,需要构建客户端和服务器端.另外,传输的数据可以是字符 ... 
- Protobuf实现Android Socket通讯开发教程
		本节为您介绍Protobuf实现Android Socket通讯开发教程,因此,我们需要先了理一下protobuf 是什么? Protocol buffers是一种编码方法构造的一种有效而可扩展的格式 ... 
- 一个Android Socket的例子(转)
		1.开篇简介 Socket本质上就是Java封装了传输层上的TCP协议(注:UDP用的是DatagramSocket类).要实现Socket的传输,需要构建客户端和服务器端.另外,传输的数据可以是字符 ... 
- 安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制
		安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制 socket 连接采用流的方式进行发送接收数据,采用thread线程的方式. 什么是线程? 详细代码介 ... 
- Android Socket 聊天室示例
		服务端: package com.test.chatServer; import java.io.IOException; import java.net.ServerSocket; import j ... 
随机推荐
- 不做Next,争做Nest——庆科首届智能硬件创新设计大赛产生决赛12强
			智能硬件,Wi-Fi互联,谁是下一个Nest?邀你共见证! 2014年3月到7月.由上海庆科信息技术有限公司主办的首届 MXCHIP 智能硬件创新设计大赛--"寻找下一个nest&quo ... 
- Codeforces Round #234 (Div. 2)    A. Inna and Choose Options
			A. Inna and Choose Options time limit per test 1 second memory limit per test 256 megabytes input st ... 
- linux删除多行
			光标放到行dd:删除所在行 光标放到行Ndd: 删除所在行下的N行 
- Swift - 判断是否有某功能访问权限,没有则提示,并自动跳转到设置页
			由于 iOS 系统的安全限制,App 如果需要访问设备的通讯录.麦克风. 相册. 相机.地理位置等时,需要请求用户是否允许访问. 有时用户不小心点了“不允许”,后面可能就不知道要去哪里再开启这个权 ... 
- 算法 之 aabb
			题目描述:输出所有形如aabb的4位完全平方数(即前两位数字相等,后两位数字也相等). 分支和循环结合在一起时功能强大: 下面列举所有可能的结果aabb,然后判断它们是否为完全平方数.注意a的范围是1 ... 
- Linux常见后缀缩写含义
			ctl: control rc: run control (A run-control file is a file of declarations or commands associated wi ... 
- VB入门在线视频教程大全学习
			课程目录 9分钟47秒 课时1第一课:怎么编写程序 14分钟1秒 课时1第十七课第1节:文件读写的几种方式 14分钟14秒 课时2第二课:什么是变量和变量类型 19分钟24秒 课时3第三课:变量的声明 ... 
- Oracle [sys_connect_by_path] 函数
			create table test ( NO NUMBER, VALUE VARCHAR2(100), NAME VARCHAR2(100) ); -------------------------- ... 
- stm8s103调试注意点
			外设时钟的配置,有次ADC就是不工作,查问题查了很久,总是怀疑ADC配置问题,然后利用库函数的例程,发现就可以,最后发现,外设时钟没开启,外设时钟如下配置 CLK->PCKENR1 = 0x00 ... 
- 理解UIView的绘制-孙亚洲
			前言 最近研究OpenGL ES相关和 GPU 相关 发现这篇文章很具有参考的入门价值. 理解 UIView 的绘制, UIView 是如何显示到 Screen 上的? 首先要从Runloop开始说, ... 
