場景:
使用 Socket的方式向下位機發送中文信息,下位機收到的中文是亂碼
原因:
了解到的原因是上位機與下位機的發送與接收的編碼與解碼方式不一致
比如上位機采用 Encoding.UTF8.GetBytes()的方式編碼發送信息
下位機采用 Encoding.Default.GetString()的方式解碼的方式收信息
一個用UTF8,一個使用Default就出現了編碼與解碼的不一致,導致下位機收到亂碼的信息。
此時改變上位機或下位機的編碼、解碼方式,保持兩者的一致性就可解決。
解決:
方案一:將下位機的解碼方式改為Encoding.UTF8.GetString()即可。
方案二:改變上位機的編碼方式即可。Encoding.Default.GetBytes()
注:發送方使用GetBytes()轉成byte數組發送,接收方使用GetString()裝換成字符串顯示。