注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

还东国的博客

行之苟有恒,久久自芬芳

 
 
 

日志

 
 

C#与C++网络通信的中文解析问题  

2016-04-05 10:29:35|  分类: C++(VC)编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
C#与C++网络通信的中文解析问题
公司的C#的客户端要和C++写得服务端进行通信,其中传输的数据中遇到了一个问题,就是服务端在下发的数据中会有中文出现,在C++端使用的是UTF-8的格式。然而在C#端怎么解析都不成,即使用UTF-8或者GB2312什么的都不成。
后来还是发现封装的结构体,这里面使用的是string,类似如下:
class Person
{
....
string name;  //byte[] name;
....
}
后来经过直接从拿到的BYTE数组中进行还原,发现数据确实是对的,然后同事就想了一个半法。把上面的改成了BYTE数组。也就是注释的那种情况,不过这样数据是对了,但是还得再转一次才能成为可以使用的中文。转换的方法也比较奇葩:
System.Web.HttpUtility.UrlDecode(temp, System.Text.Encoding.UTF8);
真是无语,不知道这是啥么一种解析编码,上网查了查,只是说这个是用来传递URL资源时用的,不知道和BYTE[]流怎么有勾搭了,应该是C#在上层应用时进行了转换的原因吧。
  评论这张
 
阅读(178)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017