`
Jason_zhu
  • 浏览: 20828 次
  • 性别: 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请求。

 

 

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

 

 

 

分享到:
评论

相关推荐

    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进程通信.rar_java socket _java程序_socket java_进程通信

    代码号为”Merlin”的J2SE1.4带来了一些激动人心的新特性,诸如对正则表达式的支持,异步输入输出流,通道(Channel),字符集等.虽然该版本还处在测试阶段,但这些新特性早已让开发人员们跃跃欲试.在Merlin发布之前,异步...

    阻塞型socket编程

    用阻塞型的方法实现socket的编程,简单的服务器向客服端发送时间,客服端向服务器发送hello,用的VC++2008创建的,运行时要将属性里的配置属性下的常规字符集换成使用多字符集。

    mfc socket编程(平台在线离线状态互监控,聊天,文件传输)

    1、平台用的VS2013,代码支持VS默认的Unicode字符集和VC6.0平台的MBCS字符集。 2、代码具有详细的注释和注意事项解析。 3、由于编译后工程较大,不便上传,需用户自行新建工程添加至目录。

    ProxyCache socket buffer 代理缓存服务器TCP/IP,实现本地服务器网页的代理缓存

    实现一个基本的webProxy Cache,java代码,默认字符集请改为utf-8,目前只能缓存本地web服务器上的网页,图片。

    简单计帐(Socket)

    数据库是access数据库 只能有一个管理员权限,可添加帐单和修改删除, 一个超级管理员权限管理其他权限的人员 用户名为 admin 密码: admin2008 其他的责为一般权限. 本人在用socket传递一个数据集的...

    java实现十六进制字符unicode与中英文转换示例

    当需要对一个unicode十六进制字符串进行编码时,首先做的应该是确认字符集编码格式,在无法快速获知的情况下,通过一下的str4all方法可以达到这一目的

    20201117.rar

    VS2010 MFC 多字节字符集开发Socket 客户端&服务端一体,可创建线程进行拓展客户端&服务端接口

    使用vfw32的网络视频聊天实例

    使用微软提供的avi库进行网络视频聊天。 Vfw是微软提供的一个avi库。 源代码是VC6.0下的,书本讲的十分简练,也有很多错误。这个是使用VS2010重写的,其中加入了大量自己...在多字节字符集模式下,中文使用的是GB2312.

    阻塞型客服端代码

    阻塞型socket网络编程,用阻塞型实现数据交换通信,此处为客服端代码,他向服务器发送hello,接收服务器发来的时间并显示,用vc++2008编写,在运行时建立win32控制台程序,在工程属性下面 常规中的字符集选项换成多...

    HttpClient工具类封装.docx

    HttpClient工具类封装,基于httpclient4.5.12,有get、post、put、delete方法,可设置连接超时时间,请求超时时间,socket读写超时时间,设置是否允许重定向,字符集

    node.js操作mysql简单实例

    上篇文章介绍了node.js操作redis的简单实例,这里介绍如何操作...6.charset:连接字符集(默认:’UTF8_GENERAL_CI’,注意字符集的字母都要大写) 7.localAddress:此IP用于TCP连接(可选) 8.socketPath:连接到unix

    ui-utilcpp:C++ 实用程序库-开源

    * CharsetMagic:字符集猜测。 * 重新编码器:字符集重新编码。 * 时间:杂项日期和时间实用程序。 * 文件:杂项文件实用程序。 * 文本:杂项字符串实用程序。 * http/:最小的 HTTP 实现。 * PosixRegex:C '...

    mysql 8.0.17 winx64(附加navicat)手动配置版安装教程图解

    # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] # 设置3306端口 port = 3306 user = root socket =/data/3306/mysql.sock # 设置mysql的安装目录 basedir=D:\\appinstall\mysql

    PHPMailer邮件类

    // 这里指定字符集! $mail->Encoding = "base64"; $mail->AddAddress($sendto_email,"username"); // 收件人邮箱和姓名 $mail->AddReplyTo("yourmail@163.com","163.com"); //$mail->WordWrap = 50; // set ...

    mous:用于FreeBSDLinuxmacOS的轻量级音频播放器和转换器

    字符集转换 Qt 5是唯一的依赖项 2 。 慕斯 客户端-服务器模型 Vim像键绑定 文件管理器 多播放列表 低内存消耗 在后台播放 字符集转换 Ncurses是唯一的依赖项 3 。 慕思 完全没有依赖性 外挂程式 名称 能力 相依性 ...

    TCP/IP多线程web服务器实现,Multi-Threaded Web Server java实现多网页请求访问

    测试无问题,默认字符集请改为utf-8,端口号可以按自己喜好更改,已经准备好iisstart.html文件在其中,可以访问这个网页或是自己新令。

    MFC教程入门知识全集.rar

    10.5.3 实例三:基于字符界面的聊天程序 第11 章 线程间的同步 11.1 进程和线程的概念 11.2 Win32 的线程 11.2.1 线程的创建 11.2.2 线程的终止 11.2.3 实例:通过创建多线程来编写网络聊天程序 11.3 MFC 的...

Global site tag (gtag.js) - Google Analytics