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

场景:

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

原因:

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

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

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

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

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

解决:

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

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

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

猜你喜欢

转载自www.cnblogs.com/sugarwxx/p/12196895.html
今日推荐