C# Socket的方式發送中文,接收方收到亂碼


場景:

使用 Socket的方式向下位機發送中文信息,下位機收到的中文是亂碼

原因:

了解到的原因是上位機與下位機的發送與接收的編碼與解碼方式不一致

比如上位機采用 Encoding.UTF8.GetBytes()的方式編碼發送信息

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

一個用UTF8,一個使用Default就出現了編碼與解碼的不一致,導致下位機收到亂碼的信息。

此時改變上位機或下位機的編碼、解碼方式,保持兩者的一致性就可解決。

 

解決:

方案一:將下位機的解碼方式改為Encoding.UTF8.GetString()即可。

方案二:改變上位機的編碼方式即可。Encoding.Default.GetBytes()

 

注:發送方使用GetBytes()轉成byte數組發送,接收方使用GetString()裝換成字符串顯示。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM