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();
        }
        
    }
}

 

转载于:https://www.cnblogs.com/xfqj/p/4194761.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值