码迷,mamicode.com
首页 > Windows程序 > 详细

C# Socket的方式发送中文,接收方收到乱码

时间:2020-01-15 15:30:41      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:enc   gets   上位机   string   soc   收信   使用   信息   数组   

场景:

使用 Socket的方式向下位机发送中文信息,下位机收到的中文是乱码

原因:

了解到的原因是上位机与下位机的发送与接收的编码与解码方式不一致

比如上位机采用 Encoding.UTF8.GetBytes()的方式编码发送信息

下位机采用 Encoding.Default.GetString()的方式解码的方式收信息

一个用UTF8,一个使用Default就出现了编码与解码的不一致,导致下位机收到乱码的信息。

此时改变上位机或下位机的编码、解码方式,保持两者的一致性就可解决。

 

解决:

方案一:将下位机的解码方式改为Encoding.UTF8.GetString()即可。

方案二:改变上位机的编码方式即可。Encoding.Default.GetBytes()

 

注:发送方使用GetBytes()转成byte数组发送,接收方使用GetString()装换成字符串显示。

C# Socket的方式发送中文,接收方收到乱码

标签:enc   gets   上位机   string   soc   收信   使用   信息   数组   

原文地址:https://www.cnblogs.com/sugarwxx/p/12196895.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!