`
Jason_zhu
  • 浏览: 21199 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Socket 字符集

阅读更多

最近在将一个项目由MyEclipse迁移到NetBeans的时候遇到乱码问题,该项目分为Web端工程和服务器端工程,Web端和服务器端通过Socket通信,之前两个工程都是放在MyEclipse中,通信都没有问题,但是我将两个工程迁移到Netbeans中再运行时发现Web程序乱码,经排查得出问题出在Socket通信过程中,至于是由Netbeans什么引起,还没有深入研究。

 

之前的Socket程序(客户端和服务器端)并没有指定特定的编码方式,代码如下:

 

服务器端:

 

PrintWriter l_out = new PrintWriter(new BufferedOutputStream(socket.getOutputStream()));
BufferedReader l_in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

 

客户端:

 

PrintWriter l_out = new PrintWriter(new BufferedOutputStream(socket.getOutputStream()));
BufferedReader l_in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

 

其中的socket是客户端的socket请求。

 

现改为

 

服务器端:

 

PrintWriter l_out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(s.getOutputStream(), "UTF-8")));
BufferedReader l_in = new BufferedReader(new InputStreamReader(s.getInputStream(), "UTF-8"));
 

客户端:

 

PrintWriter l_out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(s.getOutputStream(), "UTF-8")));
BufferedReader l_in = new BufferedReader(new InputStreamReader(s.getInputStream(), "UTF-8"));

 

其中的socket是客户端的socket请求。

 

 

后经过测试,客户端接收到的流解析出来不会出现乱码了。

 

 

 

分享到:
评论

相关推荐

    如何修改mysql字符集

    ### 如何修改MySQL字符集 在安装MySQL之后,默认情况下,MySQL服务器使用的字符集可能是`latin1`。然而,在实际的应用场景中,用户可能需要将字符集更改为其他字符集(例如`utf8`),以便更好地支持多语言环境下的...

    pb下利用socket进行网络传输

    这会将字符串"Hello, Server!"发送到已连接的Socket。 5. **接收数据** 接收数据则使用`ReceiveData`或`ReceiveDataEx`函数,它们会等待数据到来。例如: ```powerbuilder string received_data received_data...

    eventsocket:FreeSWITCH事件套接字的扭曲协议

    eventsocket是FreeSWITCH的事件套接字的扭曲协议。 该协议在单个文件类中同时支持事件套接字的入站和出站方法。 它可以用于各种各样的目的。 它的目标是简单和可扩展,并将FreeSWITCH的所有功能导出到基于Twisted的...

    Ubuntu下修改MySQL字符集

    MySQL默认字符集为latin,若要正确显示中文,需要将字符集更改未utf8。修改字符集在ubuntu14和ubuntu16下略有不同。  编辑配置文件my.cnf  $sudo vim /etc/mysql/my.cnf  [client]  default-character-set=...

    TCPUDP Socket调试工具.zip

    socket的调试模拟工具,在网络体系结构中网络通信的建立必须是在通信双方的对等层进行,不能交错。 在整个数据传输过程中,数据在发送端时经过各层时都要附加上相应层的协议头和协议尾(仅数据链路层需要封装协议尾)...

    关于socket的封装使用

    1. 字符串转字节数组:在发送数据时,需要将字符串转换为字节数组,一般采用指定的字符集,如UTF-8。 ```java byte[] bytes = data.getBytes("UTF-8"); ``` 2. 字节数组转字符串:接收到字节数组后,将其转换回...

    防止Socket传递汉字乱码

    当涉及到汉字这类非ASCII字符集的传递时,可能会遇到乱码问题。本篇文章将深入探讨如何防止Socket传递汉字乱码,确保数据传输的正确性。 1. **字符编码理解** - 字符编码是计算机表示和处理文本的方式,常见的有...

    java socket服务器客户端程序

    在Java中,网络传输的数据通常是字节流,因此可能需要进行字符集的转换,如UTF-8,以确保数据正确地编码和解码。 7. **异常处理**: Socket编程中,错误处理至关重要,如IOException需要捕获和适当地处理。关闭...

    字符编码转换实用工具和socket调试工具

    "字符集编码转换工具.rar"和"SocketTool.rar"作为源码软件,为学习编程的人员提供了学习和研究的基础,他们可以借此了解字符编码转换和Socket通信的实现细节,提升自己的编程技能。 总的来说,字符编码转换工具帮助...

    C# winform做的网络通讯Socket服务端(附原码)

    可能需要考虑编码问题,确保正确解析UTF-8或其他字符集的SQL语句。 5. **执行SQL语句** - 将SQL语句发送到数据库执行。这通常涉及使用ADO.NET或Entity Framework等库来连接数据库,执行查询并获取结果。 6. **...

    c++ wchar_t处理和socket资料

    `wchar_t`的数据类型在处理非ASCII字符集,如中文、日文、韩文等复杂语言时特别有用,因为这些语言可能需要多个字节来表示一个字符。 处理`wchar_t`时,我们经常用到`<cwchar>`头文件中的函数,如`swprintf`、`...

    socket编程文档

    例如,使用InputStreamReader和OutputStreamWriter结合特定的字符集(如UTF-8)进行转换。 四、示例程序 在Socket编程实践中,常常会编写简单的服务器和客户端示例,以理解基本的工作原理。一个简单的Java服务器端...

    Socket Library

    总的来说,Socket Library 是一个强大的工具集,可以帮助开发者专注于业务逻辑,而不是底层网络通信的复杂性。无论你是初学者还是经验丰富的程序员,这个库都能简化你的工作,让你能够更高效地实现网络应用的开发。...

    Linux下MySQL 5.5/5.6的修改字符集编码为UTF8的方法

    然而,在处理多语言数据时,字符集的选择就显得尤为重要。本篇文章将详细阐述如何将Linux下的MySQL 5.5或5.6版本的字符集编码更改为UTF8,以支持更多的语言和特殊字符。 首先,我们需要了解MySQL中字符集的概念。...

    SocketLibrary.rar

    `NetFileTransfer.resx`是资源文件,可能包含了一些本地化字符串或者其他资源,比如错误消息或者用户界面元素,这些可能在文件传输过程中显示给用户。 `SocketLibrary.sln`是解决方案文件,保存了一个或多个项目的...

    windows socket api函数大全

    Windows Socket API,简称Winsock,是Microsoft为Windows操作系统实现的一套网络编程接口,它遵循BSD Socket模型,提供了丰富的函数集,用于开发TCP/IP网络应用程序。这些API函数不仅适用于面向连接的Stream(TCP)...

    Socket网络编程实例

    数据传输前,可能需要对消息进行编码(如UTF-8)和解码,以确保正确地处理各种字符集。 6. **错误处理**:网络通信中难免会遇到各种异常,如连接中断、数据传输错误等。因此,良好的错误处理机制是必不可少的,包括...

    基于socket的聊天室

    - **数据编码与解码**:在网络传输中,数据通常需要转化为字节流,考虑到字符集的问题,如UTF-8,确保两端的编码一致。 - **同步与互斥**:在多线程环境下,可能需要考虑锁机制以防止数据竞争问题。 5. **实际...

    JAVA Socket聊天程序

    - 数据编码和解码:通常我们会将字符串转化为字节数组再进行传输,需要考虑字符集问题,如UTF-8。 - 安全性:考虑使用SSL/TLS加密通信,防止数据被窃取。 - 用户认证和授权:登录验证用户身份,确保只有合法用户能...

    SOCKET类的设计和实现

    在计算机网络通信领域,尤其是在Windows平台上,**WinSock**(Windows Sockets)作为一套API集,为开发者提供了访问低层网络通信服务的能力,特别是在TCP/IP协议族的基础上。本文旨在深入探讨WinSock API的相关知识...

Global site tag (gtag.js) - Google Analytics