当前位置:  技术问答>linux和unix

socket通信中的中文字符问题(菜鸟求助)

    来源: 互联网  发布时间:2016-08-12

    本文导语:  服务端程序运行在linux系统下,客户端程序运行在windows系统下,双方通信时,如果没有中文字符则数据收发、数据处理等等都正常,一出现中文字符就出错,该怎么处理?大家帮帮忙。 | linux...

服务端程序运行在linux系统下,客户端程序运行在windows系统下,双方通信时,如果没有中文字符则数据收发、数据处理等等都正常,一出现中文字符就出错,该怎么处理?大家帮帮忙。

|
linux 默认情况下的编码格式utf-8
与windows不同,在linux和windows之间通过socket发消息势必会遇到这个问题尤其是传递文件时的文件名和路径(linux:/home/...;windows:c:temp;当然windows也认/,所以这个文件还好解决一点)
编码:linux有iconv:你进一步封装成自己的函数
在向windows发送数据前最后一个操作就是将所有buff数据的编码转换成gb2312/gbk,
在从windows接收数据后第一个操作就是将所有buff数据的编码转换成utf-8

|
这个帖子也在问这个问题
http://topic.csdn.net/u/20091201/19/1ce57579-fd89-4ba3-bfb5-61dc49ee6b88.html

|
以前也遇到过这种情况,有此一问,我们不能假设所有的windows都是BG2312编码,也不能假设所有的Linux都是UTF-8,那么接收端如何判断传过来的数据的编码呢?

|
先要检测中文字符的编码格式——gb2312还是 gbk啊 什么的,然后用iconv 函数转  不过也可以改变 unix系统的 默认字符编码 为 gb2312 这样就不用转了

|
虽然我对开发这方面不是很熟
不知道你说的出错 是程序出错退出  还是乱码 最好把现象描述的更详细一点
如何可能 最好把核心代码贴出来 大家才好帮你分析

|
up

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java 与c++用socket通讯的问题??字符串不能接收到??急啊!
  • 为什么从socket一端读进去的字符,从另一端读出来是null----在线
  • linux & unix 如何把 long型转化为 字符串数组(用来拼socket报文)?高手请救!!
  • socket通讯我如何才能正确接受来自c++的字符串??在线等待,立即送分!
  • socket中,从client端(用java编写的)传到server端(用c编写的)的字符串为何总多一个ASCII码为10的字符呀?
  • 我调用socket向外发送消息,为什么在发送的同时,会打印字符串到屏幕上
  • 为什么gets()在gcc编译时会报warning,且经socket发往server端只显示一个字符?
  • socket inet_ntoa返回客户端地址字符串的问题!
  • java命名空间java.net类socket的类成员方法: socket定义及介绍
  • re socket编程中 ACCEPT返回的socket与原socket(他参数中的)端口号一样吗?
  • java命名空间java.nio.channels类socketchannel的类成员方法: socket定义及介绍
  • libevent2需要从socket读一段数据写入一个socket中,同时发送给另一个socket
  • java命名空间java.nio.channels类serversocketchannel的类成员方法: socket定义及介绍
  • socket 通讯开发包 Simple Sockets
  • java命名空间java.nio.channels类datagramchannel的类成员方法: socket定义及介绍
  • C++ Socket 库 C++ Sockets
  • java命名空间java.net类socket的类成员方法: getsendbuffersize定义及介绍
  • vc做的的socket应用和unix下socket?
  • java命名空间java.net类socket的类成员方法: getreceivebuffersize定义及介绍
  • QSocketDevice ( int socket, Type type )中那个 int socket 是哪里来得?
  • java命名空间java.net类socket的类成员方法: gettrafficclass定义及介绍
  • socket编程 通过man socket, 没有找到socket函数的第一参数该填什么 怎样利用man手册
  • java命名空间java.net类socket的类成员方法: getport定义及介绍
  • 线程间可否通过管道传递SOCKET句柄?还有其他方式传递SOCKET么?
  • java命名空间java.net类socket的类成员方法: getlocalport定义及介绍
  • [FreeBSD] 大神,求解,control socket : can‘t to any socket
  • java命名空间java.net类socket的类成员方法: getinetaddress定义及介绍
  • 两个 Socket 互相通信,其中一个如何判断另一个 Socket 是否已经意外断开了连接?
  • java命名空间java.net类socket的类成员方法: isconnected定义及介绍
  • 大家帮忙推荐一本linux socket编程的入门书,我刚接触socket,谢谢!!


  • 站内导航:


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

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

    浙ICP备11055608号-3