项目中用到了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发送和接收出现乱码问题解决的更多相关文章

  1. socket对于大数据的发送和接收

    大数据是指大于32K或者64K的数据. 大数据的发送和接收通过TSTREAM对象来进行是非常方便的. 我们把大数据分割成一个个4K大小的小包,然后再依次传输. 一.大数据的发送的类语言描述: 1)创建 ...

  2. PHP+socket+SMTP、POP3协议发送、接收邮件

    .实现SMTP协议的类dsmtp.cls.php:<?php            , $webname=).);     } } .实现POP3协议的类dpop3.cls.php: <? ...

  3. Android—Volley:接收服务端发送的json数据乱码问题解决

    new JsonObjectRequest中重写方法parseNetworkResponse,内容如下: /** * 重写此方法不会导致乱码 */ @Override protected Respon ...

  4. android开发学习——Socket发送和接收

    client -- server发送过程中,涉及的输入流输出流: http://blog.csdn.net/dlwh_123/article/details/35982015   (良心好文)   需 ...

  5. 一个Android Socket的例子

    1.开篇简介 Socket本质上就是Java封装了传输层上的TCP协议(注:UDP用的是DatagramSocket类).要实现Socket的传输,需要构建客户端和服务器端.另外,传输的数据可以是字符 ...

  6. Protobuf实现Android Socket通讯开发教程

    本节为您介绍Protobuf实现Android Socket通讯开发教程,因此,我们需要先了理一下protobuf 是什么? Protocol buffers是一种编码方法构造的一种有效而可扩展的格式 ...

  7. 一个Android Socket的例子(转)

    1.开篇简介 Socket本质上就是Java封装了传输层上的TCP协议(注:UDP用的是DatagramSocket类).要实现Socket的传输,需要构建客户端和服务器端.另外,传输的数据可以是字符 ...

  8. 安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制

    安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制 socket 连接采用流的方式进行发送接收数据,采用thread线程的方式. 什么是线程?  详细代码介 ...

  9. Android Socket 聊天室示例

    服务端: package com.test.chatServer; import java.io.IOException; import java.net.ServerSocket; import j ...

随机推荐

  1. HDU 1575 EASY

    #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> ...

  2. 自己定义View实现水平滚动控件

    前几天项目中须要使用到一个水平可滚动的选择条,类似下图效果(图片是从简书上一位作者那儿找来的,本篇也是在这位作者的文章的基础上改动的,站在大神的肩膀上,哈哈,因为原文没有提供demo,并且实现的效果跟 ...

  3. USACO holstein 超时代码

    /* ID:kevin_s1 PROG:holstein LANG:C++ */第八组数据跪了.半天都不出结果 #include <iostream> #include <cstdi ...

  4. java中super的作用

    super()的作用 super能够用来訪问超类的构造方法和被子类所隐藏的方法.假设子类中有方法与超类中的方法名称和參数同样,则超类中的方法就被隐藏起来,也就是说在子类中重载了父类中的方法. 引用父类 ...

  5. 深度理解Jquery 中 scrollTop() 方法

    这是工作遇到scrollTop() 方法.为了强化自己,把它记录在博客园当中. 下面就开始scrollTop 用法讲解: scrollTop() 定义和用法 scrollTop() 方法设置或返回被选 ...

  6. POJ 1471 模拟?

    题意:求最大无坏点三角形 思路: 模拟? (为什么我模拟过了...) 有人用 DP,有人用 搜索... // by SiriusRen #include <cstdio> #include ...

  7. POJ 1384 Piggy-Bank DP

    一个完全背包 很裸,对于我这种DP渣渣都能1A.. // by SiriusRen #include <cstdio> #include <cstring> #include ...

  8. 将maven项目中依赖的jar包导出到指定的目录

    <plugin> <artifactId>maven-dependency-plugin</artifactId> <configuration> &l ...

  9. 转:如何在Ubuntu 14.04中安装最新版Eclipse

    想必很多开发人员都知道,Ubuntu 软件源中提供的并不是最新版本的 Eclipse,本教程就教大家如何在 Ubuntu 14.04 中快速安装 Eclipse 官方发布的最新版本. 到目前为止,Ec ...

  10. Selenium启动不同浏览器

    1.启动Chrome "webdriver.chrome.driver" System.setProperty("webdriver.chrome.driver" ...