当前位置:  技术问答>java相关

怎么能接收通过socket传来的中文数据呢?我如果用BufferReader的话socket连接就无效了

    来源: 互联网  发布时间:2015-07-02

    本文导语:  怎么能接收通过socket传来的中文数据呢?我如果用BufferReader的话socket连接就无效了 | 比如你要发送String str = "测试";字段,如果你能保证发送前字符编码是正确的,不会乱码,那么接收到的自然就是正确...

怎么能接收通过socket传来的中文数据呢?我如果用BufferReader的话socket连接就无效了

|
比如你要发送String str = "测试";字段,如果你能保证发送前字符编码是正确的,不会乱码,那么接收到的自然就是正确的了。
如果发送前就为乱码
可以先转一下:(类似以下处理)
str=new String (str.getBytes("ISO-8859-1"),"gb2312");
其实如果只是发送简单的中文字串,直接使用print或者readLine方法发送和接收倒也不会有什么大问题,但要顾及到很多细节的化,最好打包成byte[]数组发送为好,接收到再转为String
使用DateInputStream和DateOutputStream的write方法和read方法发送和接收
当然打包解包又会复杂一些

|
faint
BufferedReader是用来读取文本文件流的,
仔细看看它的api文档阿
Read text from a character-input stream, buffering characters so as to provide for the efficient reading of characters, arrays, and lines. The buffer size may be specified, or the default size may be used. The default is large enough for most purposes. In general, each read request made of a Reader causes a corresponding read request to be made of the underlying character or byte stream. It is therefore advisable to wrap a BufferedReader around any Reader whose read() operations may be costly, such as FileReaders and InputStreamReaders. For example,  BufferedReader in
   = new BufferedReader(new FileReader("foo.in"));
  will buffer the input from the specified file. Without buffering, each invocation of read() or readLine() could cause bytes to be read from the file, converted into characters, and then returned, which can be very inefficient. Programs that use DataInputStreams for textual input can be localized by replacing each DataInputStream with an appropriate BufferedReader.

|
读取时加上字符编码

|
到底是什么问题 说清楚点

|
当然可以,不管是英文也好中文也好或是其他数据,最终传输的都是一样的,都是二进制流,你可以根据二进制流构造字符串,就可以得到中文了。

    
 
 

您可能感兴趣的文章:

  • socket发送端、接收端同一机器,kill掉接收端进程,发送端也被kill?
  • 从多个socket接收数据
  • socket 接收数据问题
  • socket 接收缓冲区大小如何查看?
  • getsockopt每次得到的socket的接收发送缓冲怎么都不一样
  • Linux下怎么用socket接收zip文件流?怎么把zip文件读成流?
  • socket接收字节数组不成功,请大侠指点迷津
  • 关于socket下的发送和接收缓冲区的问题
  • 多线程socket程序莫名其妙接收到SIGALRM信号问题。
  • 请教,socket中recv不能一次完全接收send发送的字节数?
  • UNIX下SOCKET怎么能象WINDOWS下用通信事件来响应接收数据呢?
  • 请教关于socket通讯中客户端接收服务端信息的问题
  • socket接收二进制数据流的问题!!(在线等待)
  • 求教:设置socket接收缓存区大小失败?
  • Linux下怎么用read或recv函数完全接收socket发来的数据?
  • java 与c++用socket通讯的问题??字符串不能接收到??急啊!
  • 客户端是linux通过socket编程实现服务器端win平台接收?
  • 我做了个socket服务器,但是客户端接收数据的时候用select()函数????可接受不到
  • 在装有uclinux板中,怎么读取红外线接收器 接收到的数据 iis7站长之家
  • 300分,谁帮我写socket接收这部分,我就给,更多的分也好商量。
  • post后,怎么接收到的上一页的文本值(中文)为乱码?
  • telnet客户端如何显示接收到的中文数据??
  • 解决php接收shell返回的结果中文乱码问题
  • 真的很急,socket发送中文信息时,接收端显示有误,请指教
  • 有没有哪位提供一下可以接收服务器中文字体的源代码
  • 高手请帮忙!!JAVAMAIL开发接收中文附件问题,解决再送100
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何知道接收到的广播包是从哪个网络端口接收到的?
  • recv 接收 ,接收空间不够大, 可以通过什么知道?
  • 发出SIGUSR1命令后,接收进程怎样定义接收后的动作
  • 设计一个嵌入式透明网关,从eth0接收到的数据发送到eth1,从eth0接收到的数据转发到eth1,用原始套接字做的,但是eth0接收到eth1的数据又发给了eth1,这样在两者之间形成循环,怎么办?
  • 在装有uclinux板中,怎么读取红外线接收器 接收到的数据
  • postfix 在内网可以正常接收与发送邮件,但向局外,不能接收与发送
  • sendmail,内部发送接收可以,当用外部的域名,无法发送和接收,如163账号。
  • 如何判断包已经接收完?
  • 红外设备发送接收程序设计
  • 如果测试开发板每秒接收到的最大数据量?
  • 如何让程序接收底层数据?
  • 怎么实现Windows和Linux之间数据的接收发送
  • 关于串口接收的问题,一直很疑惑……
  • 请问如何清除UDP接收缓存?????????????
  • 关于实时信号的传送,接收问题。
  • FTP接收文件的问题
  • 求助:UDP编程,无法接收广播数据包
  • 飞秋聊天程序UDP接收问题
  • 串口接收数据丢失,怀疑是中断引起的,请指教
  • 软件无线电接收器 pmsdr


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3