首页 > 代码库 > java服务器与c#客户端的字符编码问题
java服务器与c#客户端的字符编码问题
在服务器与客户端交互时,有时候服务器与客户端并不是拿同一种编程语言写的,这时候需要注意字符编码转换的问题。以java服务器和c#客户端为例,此时把c#端接收到的数据用GBK编码表示。
Encoding encoding = Encoding.GetEncoding("GBK"); //定义GBK编码
returnMsg = encoding.GetString(memStream.GetBuffer(), 0, memStream.GetBuffer().Length);
具体代码:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Net;using System.Net.Sockets;using System.IO;namespace 客户端与java{ class Program { static string IP = "127.0.0.1"; //定义IP地址 static int port = 9999; //端口号 static void Main(string[] args) { TcpClient tcp = new TcpClient(); tcp.Connect(IP, port); //tcp连接 MemoryStream memStream = null; //存取读回的流 string returnMsg = string.Empty; //与服务器建立连接 Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//定义套接口 IPAddress add = IPAddress.Parse(IP); //提供IP协议 IPEndPoint endPt = new IPEndPoint(add, port); //表示网络端点 socket.Connect(endPt); //建立网络端点与主机的连接 //接收数据 byte[] buffer = new byte[1024]; //返回的数据存入buffer int recCount = 0; memStream = new MemoryStream(); //接收返回的字节流 while ((recCount = socket.Receive(buffer)) > 0) //接收到的缓冲区的数据大于0时 { memStream.Write(buffer, 0, recCount); //将缓冲区的数据写入buffer } Encoding encoding = Encoding.GetEncoding("GBK"); //定义GBK编码 returnMsg = encoding.GetString(memStream.GetBuffer(), 0, memStream.GetBuffer().Length); //将内存中的流转为GBK编码格式 Console.WriteLine(returnMsg); Console.ReadLine(); } }}
java服务器与c#客户端的字符编码问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。