c# 接收网络汉字乱码_c#客户端SOCKET接收中文乱码,该如何处理

这篇博客主要讨论了C#客户端通过Socket接收从C++服务器端发送的中文数据时出现乱码的问题。服务器端使用C++从Oracle数据库获取数据并以Unicode编码发送,而C#的WP客户端在接收时出现乱码。尝试使用UTF8和Unicode解码均未成功。解决方案可能涉及检查Oracle数据库的返回编码,并确保在客户端正确解码。建议直接输出原始缓冲区内容以确定数据编码,并考虑调整rtrim函数对特定编码的支持。
摘要由CSDN通过智能技术生成

c#客户端SOCKET接收中文乱码

server

是c++写的执行sql语句从oracle数据库中查询内容通过socket发送;c++编译默认编码是unicode

_RecordsetPtr Rp=connect.GetRecordset(sql);

_variant_t varUserName;

string strUserName;

varUserName = Rp->GetCollect ("TICKETCODE");//票号

strUserName=strUserName+(char *)_bstr_t(varUserName);

strUserName=rtrim(strUserName);

send(clientSocket,strUserName.c_str(),strUserName.length(),0);

client:

c++写的windows窗体应用程序客户端接收不会乱码;

是c#写的WP客户端接收以后乱码 相关代码如下;

string response = "something";

SocketAsyncEventArgs socketEventArg = new SocketAsyncEventArgs();

socketEventArg.RemoteEndPoint = _socket.RemoteEndPoint;

socketEventArg.SetBuffer(new Byte[MAX_BUFFER_SIZE], 0, MAX_BUFFER_SIZE);

socketEventArg.Completed += new EventHandler(delegate(object s, So

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值