解决Socket 通讯中接收和发送的中文变成乱码

Encoding.ASCII
->>
Encoding.Default或者Encoding.UTF8,并且发送和接收时编码要保持一致



Encoding.ASCII 换成
Encoding.Unicode 就可以,Unicode 支持中文编码格式

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
安卓socket通讯可以同时支持发送图片和发送文字,具体的实现方式如下: 1. 首先,建立安卓端的socket连接。可以使用JavaSocket类或者使用第三方库进行封装。 2. 发送文字:在发送文本消息时,可以将文本消息通过socket的输出流发送给服务器。可以使用PrintWriter类或者BufferedWriter类来发送字符串数据。例如,可以通过以下代码实现发送文本消息: ```java String message = "Hello, World!"; // 文本消息 PrintWriter out = new PrintWriter(socket.getOutputStream(), true); out.println(message); ``` 3. 发送图片:在发送图片时,首先需要将图片转换为字节流。可以使用Bitmap类将图片转换为字节数组,然后通过socket的输出流发送给服务器。例如,可以通过以下代码实现发送图片: ```java Bitmap image = BitmapFactory.decodeResource(getResources(), R.drawable.image); // 图片资源 ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream); // 将图片压缩为JPEG格式 byte[] imageData = byteArrayOutputStream.toByteArray(); // 将压缩后的图片转换为字节数组 DataOutputStream out = new DataOutputStream(socket.getOutputStream()); out.writeInt(imageData.length); // 发送图片长度 out.write(imageData); // 发送图片数据 ``` 4. 在服务器端接收消息时,根据数据类型进行校验和解析。可以根据协议约定来判断接收到的数据是文本消息还是图片数据,并进行相应的处理。例如,可以使用以下代码在服务器端接收文本消息: ```java BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream())); String message = bufferedReader.readLine(); // 处理接收到的文本消息 ``` 接收图片数据时,需要先接收图片的长度,然后根据长度接收对应的字节数组,并将字节数组转换为图片。例如,可以使用以下代码在服务器端接收图片: ```java DataInputStream in = new DataInputStream(socket.getInputStream()); int imageLength = in.readInt(); // 接收图片长度 byte[] imageData = new byte[imageLength]; in.readFully(imageData); // 接收图片数据 Bitmap image = BitmapFactory.decodeByteArray(imageData, 0, imageLength); // 处理接收到的图片 ``` 要注意的是,发送接收的顺序需要保持一致,即先发送图片长度再发送图片数据,服务器端也需要先接收图片长度再接收图片数据。另外,为了保证传输的稳定性和安全性,可以加入相应的校验码、加密解密等机制。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值