广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >java socket乱码
  • 356
分享到

java socket乱码

java基础javasocket乱码 2018-03-10 23:03:07 356人浏览 无得
摘要

java socket乱码解决方法:首先在服务端使用InputStreamReader指定客户端的输入流为utf-8编码,以及使用OutputStreamWriter指定输出流为utf-8编码;然后在客户端同样的设置utf-8编码即可。in

java socket乱码

解决方法:

首先在服务端使用InputStreamReader指定客户端的输入流为utf-8编码,以及使用OutputStreamWriter指定输出流为utf-8编码;

然后在客户端同样的设置utf-8编码即可。

in = new BufferedReader(new InputStreamReader(Socket.getInputStream(),"UTF-8"));
out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF-8"));

示例:

Server:

import java.io.*;
import java.net.*;
 
public class SocketServerEx1 {
	public static void main(String args[]) {
		System.out.println("Server");
		
		ServerSocket serverSocket = null;
		Socket clientSocket = null;
		int connects = 0;
		try {
			serverSocket = new ServerSocket(82, 5);		//端口:82,最大链接数:5
 
			//最多连接10次
			while(connects < 10) {
				connects++;
				System.out.println("--------------------等待连接--------------------------");
				clientSocket = serverSocket.accept();	//等待连接
				System.out.println("第 " + connects + " 次连接");
				ServiceClient(clientSocket);
			}
 
			serverSocket.close();
		} catch(IOException ioe) {
			System.out.println("Error: " + ioe);
		}
	}
	
	public static void ServiceClient(Socket client) throws IOException {
		System.out.println("已链接");
		
		InputStreamReader inSR = null;
		OutputStreamWriter outSW = null;
		try {
			//读取数据
			inSR = new InputStreamReader(client.getInputStream(), "UTF-8");
			BufferedReader br = new BufferedReader(inSR);
			
			outSW = new OutputStreamWriter(client.getOutputStream(), "UTF-8");
			BufferedWriter bw = new BufferedWriter(outSW);
			
			String str = "";
			while((str = br.readLine()) != null) {
				str = str.trim();
				System.out.println("收到客户端消息:" + str);
				
				bw.write("已收到信息:" + str + " 
");	//向客户端反馈消息,加上分行符以便客户端接收
				bw.flush();
			}
 
		} finally {
			//System.out.println("Cleaning up connection: " + client);
			inSR.close();
			outSW.close();
			client.close();
		}
		System.out.println("已断开");
	}
}

Client:

import java.io.*;
import java.net.*;
 
public class SocketClientEx1 {
	public static void main(String[] args) {
		System.out.println("Client");
		try {
			Socket clientSocket = new Socket("localhost", 82);
			System.out.println("Client1:" + clientSocket);
 
			DataInputStream dataIS = new DataInputStream(clientSocket.getInputStream());
			InputStreamReader inSR = new InputStreamReader(dataIS, "UTF-8");
			BufferedReader br = new BufferedReader(inSR);
			
			DataOutputStream dataOS = new DataOutputStream(clientSocket.getOutputStream());
			OutputStreamWriter outSW = new OutputStreamWriter(dataOS, "UTF-8");
			BufferedWriter bw = new BufferedWriter(outSW);
 
			//输入信息
			byte bytes[] = new byte[100];
			while(true) {
				System.out.println("----------------------------------");
				System.in.read(bytes);
				String str = new String(bytes);
				str = str.trim();
				if (str == "exit") {
					break;
				}
 
				//发送数据
				bw.write(str + "
");		//加上分行符,以便服务器按行读取
				bw.flush();
				
				
				//接收数据
				while((str = br.readLine()) != null) {
					str = str.trim();
					System.out.println("服务器回复:" + str);
					break;
				}
 
			}
			
			inSR.close();
			dataIS.close();
			dataOS.close();
			clientSocket.close();
		} catch(UnknownHostException uhe) {
			System.out.println("Error:" + uhe.getMessage());
		} catch(ConnectException ce) {
			System.out.println("Error:" + ce.getMessage());
		} catch(IOException ioe) {
			System.out.println("Error:" + ioe.getMessage());
		} finally {
		}
	}
}

编程界网,大量的免费Java入门教程,欢迎在线学习

--结束END--

本文标题: java socket乱码

本文链接: https://www.lsjlt.com/news/2707.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java socket乱码
    java socket乱码解决方法:首先在服务端使用InputStreamReader指定客户端的输入流为utf-8编码,以及使用OutputStreamWriter指定输出流为utf-8编码;然后在客户端同样的设置utf-8编码即可。in...
    99+
    2018-03-10
    java基础 java socket 乱码
  • MFC Java 使用socket 中文乱码解决方法
    在 MFC 中使用 Java 的 Socket 进行通信时,中文乱码问题可能出现在两个方面:发送端和接收端。下面给出解决方法:发送端...
    99+
    2023-10-12
    MFC
  • linux socket乱码如何解决
    这篇文章主要讲解了“linux socket乱码如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux socket乱码如何解决”吧!linux socket乱码的解决办法:1、打...
    99+
    2023-07-05
  • ​java socket通讯中文乱码问题怎么解决
    在Java Socket通讯中,中文乱码问题通常是由于字符编码不一致引起的。可以尝试以下几种解决方案: 统一字符编码:在通讯的两...
    99+
    2023-10-21
    ​java socket
  • socket中文乱码的绝佳方法
    这篇文章主要为大家展示了“socket中文乱码的绝佳方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“socket中文乱码的绝佳方法”这篇文章吧。socket中文乱码的解决办法就是对缓冲区的读取...
    99+
    2023-06-20
  • java过滤乱码(u形式乱码、unicode乱码)
    由于编辑人员从excel,word等乱七八糟的地方copy内容过来,其中有不可见的字符,导致输出内容看上去是对的,其实是多了一个零长度的字符(比如:u2028,0000200B ZERO WIDTH SPACE),所以需要过滤掉不合法的un...
    99+
    2018-05-02
    java 乱码
  • java string乱码
    java string乱码问题出在预发、生产和本地环境的系统编码方式不一致,本地系统默认是UTF-8,而预发、生产环境默认是GBK编码,因此导致出现乱码。如果不指定编码方式,则默认以系统的编码方式。String csn = Charset....
    99+
    2018-07-22
    java基础 java string 乱码
  • java压缩乱码
    java压缩乱码通常用java来打包文件生成压缩文件后会出现内容的中文乱码问题,这个问题网上很多人给出了解决方法,主要有两种方法:一是修改sun的源码;二是使用开源的类库org.apache.tools.zip.ZipOutputStrea...
    99+
    2019-09-13
    java基础 java 压缩乱码
  • java url参数乱码
    如果URL中文参数乱码的话,可以尝试:方法1:(java) 第一个页面拼接URL 参数的时候用:URLEncoder.encode(参数, "UTF-8")第二个页面从request中获取该参数值 =new String(request.g...
    99+
    2020-10-11
    java基础 java 乱码
  • java插入mysql乱码
    java插入mysql乱码java插入数据到mysql分为三层:● 前端页面● 后台代码● 数据库这三层任意一层乱码都不行,所以我们需要对着三层逐一设置编码格式,保存编码统一就不会乱码了。详解三层编码设置解决乱码问题1、前端前端就是设置页面...
    99+
    2020-07-07
    java基础 java 数据库 乱码
  • JAVA中文与乱码
    Tomcat默认字符集为ISO-8859-1,是不支持中文。所以中文都会显示成乱码。解决的需要将ISO-8859-1转换成UTF-8。一、对于Post请求request.setCharacterEncoding("UTF-8&qu...
    99+
    2023-06-02
  • java中rsa乱码介绍
    在对安全性要求比较高的报文做加密的时候,算法有很多种,我这里主要用到的就是AES加密算法。由于在国内使用,所以不可避免的要对中文进行加密和解密,而在这个过程中,发现,如果不做处理,很容易会出现中文乱码。(推荐:java视频教程)下面是常见的...
    99+
    2021-01-19
    java
  • java utf-8 乱码怎么办
    java utf-8 乱码怎么办?在html首部编写如下代码:推荐教程:《java学习》 示例如下: login.jsp 姓名: 密码: 若不...
    99+
    2017-03-29
    java
  • eclipse java 乱码怎么解决
    eclipse项目代码显示中文乱码解决方法有4种:1、设置工作空间的编码方式进行点击菜单中的windows菜单选择下拉菜单中进行选择为Preferences选项。进入general的选项,选中workspace的选项,点击Apply,点击O...
    99+
    2018-05-03
    java入门 eclipse java 乱码
  • java控制台出现乱码
    java资源的编码都是utf8,使用utf8编译。但是控制台输出的时候,中文汉字还是会出现乱码。eclipse控制台eclipse控制台的编码默认为操作系统的编码,比如GBK。这时候就不能正确显示utf8编码的汉字,需要指定控制台的编码为u...
    99+
    2021-11-28
    java基础 java 控制台 乱码
  • java写入文件是乱码
    java写入文件是乱码我们读取、写入文件流时,经常会遇到乱码的现象,造成乱码的原因当然不可能是一个,这里主要介绍因为文件编码格式而导致的乱码的问题。首先,明确一点,文本文件与二进制文件的概念与差异。文本文件是基于字符编码的文件,常见的编码有...
    99+
    2014-07-17
    java 写入文件 乱码
  • java servlet乱码怎么解决
    Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet,您可以收集来自网页表单的用户输入,...
    99+
    2019-10-24
    java
  • java web乱码解决方法
    设置文件的保存编码格式,这个一般在新建项目时,设置了GBK的编码格式,这时文件的页面编码格式是GBK的,而保存格式是ANSI的,后来把项目及文件的编码格式改为utf-8的编码格式后,依然出现中文乱码,这就是因为已经存在的文件的保存编码格式还...
    99+
    2014-05-26
    java 乱码
  • java读取txt中文乱码
    java读取txt文本中如含有中文,可能会出现乱码,解决方案是: 要统一编码,java工程的编码,txt文本编码,java工程中的java文本编码都统一为utf-8; 利用 InputStreamReader(new FileInputSt...
    99+
    2016-12-29
    java基础 java 乱码
  • Java中FileWriter写入中文乱码
    问题来源:                 Java中FileWriter写入中文乱码通常是由于“系统向目标文件写入时所使用的编码与目标文件自身的编码不同” 解决办法:         首先,确保使用JDK11及以上         其次,...
    99+
    2023-09-11
    java 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作