`

java-Socket接受中文乱码的解决

    博客分类:
  • java
阅读更多

 

服务器发送一条数据如:

    /**
     *  获取写句
     * @param socket  要获取写对象的socket
     * @return 流的写句�
     * @throws IOException IO异常
     */
    private PrintWriter getWriter(Socket socket) throws IOException {
        OutputStream socketOut = socket.getOutputStream();
        return new PrintWriter(socketOut, true);
    }

    writer.println(queryCode);
    writer.flush();

 

客户端接收:

    /**
     * 
     * @param socket  要获取读对象的socket
     * @return 流的读句�
     * @throws IOException IO异常
     */
    private BufferedReader getReader(Socket socket) throws IOException {
        InputStream socketIn = socket.getInputStream();
        return new BufferedReader(new InputStreamReader(socketIn));
    }

 

 

我在接收数据时发现这样会是乱码,之前本来不想管的,后面发现实在又解决,后面看到一朋友的贴子说;
在服务端默认的编码情况下,JAVA的SOCKET接收需要GBK编码,而C#的接收需要UTF-8编码

所以

应该写成 return new BufferedReader(new InputStreamReader(socketIn,"GBK")); 

 这样就正常显示了。

 

分享到:
评论
2 楼 aniyo 2013-10-29  
bro_feng 写道
十分感谢,学习了

不客气,解决问题就好了
1 楼 bro_feng 2013-10-25  
十分感谢,学习了

相关推荐

    java Socket与C#通信中中文乱码问题的解决方案

    总结起来,解决Java Socket与C#通信中中文乱码问题的关键在于: 1. **客户端**:确保使用`getBytes("UTF-8")`将字符串编码为UTF-8字节数组,然后通过Socket发送。 2. **服务器端**:在接收到数据后,使用`Encoding....

    java c++ 通信之间的乱码解决方法

    Java和C++之间进行Socket通信时,可能会遇到乱码问题,主要是由于编码格式不一致导致的。Java默认使用UTF-8编码,而C++在Windows XP环境下可能使用GBK编码。解决这个问题的关键在于确保数据在传输过程中保持正确的...

    防止Socket传递汉字乱码

    通过以上策略,我们可以有效避免Java Socket在传输汉字时出现的乱码问题,保证网络数据交换的准确性和完整性。在实际开发中,要养成良好的编码习惯,始终关注字符编码的选择,确保程序的跨平台性和兼容性。

    java-SWT-socket.zip_SWT_SWT socket

    在本项目"java-SWT-socket.zip"中,我们探讨的是如何使用SWT来实现Socket通信,这是一项在网络编程中至关重要的技术。 Socket通信是基于TCP/IP协议的,允许两个网络连接的端点进行双向通信。在Java中,我们可以使用...

    flash XMLSocket java 通信(采用服务器推技术 解决了乱码 )

    本文将深入探讨如何使用XMLSocket在Flash与Java之间进行高效、稳定的数据交换,并且特别关注如何解决在通信过程中可能出现的中文乱码问题。 首先,XMLSocket是Flash中的一个类,它提供了基于TCP/IP的双向通信功能,...

    Java开发Client客户端,连接Windows的Telnet服务器,解决了中文乱码问题

    本文将详细探讨如何使用Java开发这样的客户端,并解决在处理中文字符时可能出现的乱码问题。 首先,让我们了解Java中的Socket编程。在Java中,`java.net.Socket`类提供了TCP/IP套接字功能,可以用于建立客户端到...

    JAVA-OCR图文识别解决方案.docx

    ### JAVA-OCR图文识别解决方案分析 #### 方案一:个人申请 **优点:** - **识别准确率高:**此方案提供了高度精确的文字识别能力,适用于对准确性有较高要求的应用场景。 - **处理速度快:**相比其他方案,该方案...

    java基础-socket编程控制台没有数据打印以及乱码问题

    Java基础中的Socket编程涉及到网络通信的基本操作,包括创建ServerSocket监听客户端连接,Socket与服务器建立连接,以及数据的发送和接收。在这个问题中,主要涉及两个常见问题:控制台无数据显示和中文乱码。 1. *...

    Java c++ socket通信

    Java和C++之间的Socket通信是跨语言网络编程的一个常见应用场景。Socket是计算机网络中的一个通信协议,它允许不同操作系统上的应用程序之间建立连接并交换数据。在这个场景中,Java作为客户端,C++作为服务端,两者...

    JAVA socket收发数据,并支持断网自动连接

    在Java编程中,Socket通信是网络应用程序之间进行双向通信的基础。Socket API提供了低级别的网络通信接口,使得开发者能够创建客户端和服务器之间的连接。本话题主要关注如何使用Java Socket实现数据的收发,并在...

    Java解决通信过程的中文乱码的问题

    本文将深入探讨Java如何解决通信过程中的中文乱码问题,并提供多种解决方案。 1. **网页中输出中文** Java网络通信中,默认采用的字符编码是ISO-8859-1,它不支持中文字符。因此,当需要在网页上显示中文时,需要...

    log4j乱码问题解决办法

    ### log4j乱码问题解决办法 #### 一、引言 在开发过程中,日志记录是必不可少的一个环节。良好的日志系统可以帮助开发者快速定位问题并进行调试。Log4j作为一款广泛使用的Java日志框架,在很多项目中扮演着重要...

    解析Java中文乱码的处理方法

    本篇文章将深入探讨Java中处理中文乱码的各种方法,帮助开发者有效解决这类问题。 首先,我们要了解Java中的字符编码。Java采用Unicode字符集,其内部字符串是以UTF-16编码存储的。这意味着Java可以处理世界上大...

    Java基于Socket局域网聊天软件

    Java基于Socket的局域网聊天软件是一款利用网络编程技术实现的多用户通信工具,它允许在局域网内的多个设备间进行实时的信息交换。Socket在Java中是网络通信的基础,它提供了一种低级别的、面向连接的、双向的通信...

    JAVA SOCKET 编码实例

    在Java中,Socket类代表网络连接的一端,ServerSocket类用于监听并接受客户端的连接请求。一旦建立连接,数据就可以通过输入输出流进行交换。 在"JAVA SOCKET 编码实例"中,我们可能遇到以下关键知识点: 1. **...

    java socket 客户端和服务端例子

    Java默认使用UTF-8编码,但如果不正确地设置编码和解码,中文字符可能会显示为乱码。解决方案通常包括确保在读写数据时都使用一致的字符编码,例如在写入输出流前使用`new String(byte[], "UTF-8")`转换字节为字符串...

    java写的socket通信客户端

    Java编写的Socket通信客户端是网络编程中的一个基础组件,它允许两台计算机通过TCP/IP协议进行双向通信。在这个客户端程序中,主要涉及了Java的Socket类和InputStream/OutputStream类,用于建立连接、发送数据和接收...

    java socket线程cmd命令执行结合,可仿木马程序

    1、新建java项目; 2、把解压后的5个java类复制进去,修改包路径 3、先运行服务器类MJServer.java,再运行客户端类MyClient.java ...ps:因为本人系统用的是繁体字,可能会导致有乱码出现,修改一下编码格式即可

    JAVA调用zpl条码打印机打印实现中文打印。

    本文将深入探讨如何使用Java编程语言来调用ZPL(Zebra Programming Language)条码打印机,实现中文打印以及网络打印的功能。 ZPL是Zebra公司为它的条码打印机设计的一种编程语言,用于创建和控制打印任务。ZPL主要...

    java Sokcet远程调用shell

    Java Socket远程调用Shell是一种通过Java程序利用Socket通信协议实现对远程服务器的Shell命令执行的技术。这种方式常用于系统管理、自动化运维或者分布式系统的组件交互。下面将详细介绍这一技术的实现原理、步骤...

Global site tag (gtag.js) - Google Analytics