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

2022-05-29 09:18:11 字數 458 閱讀 5173

場景:

使用 socket的方式向下位機傳送中文資訊,下位機收到的中文是亂碼

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

比如上位機採用 encoding.utf8.getbytes()的方式編碼傳送資訊

下位機採用 encoding.default.getstring()的方式解碼的方式收資訊

乙個用utf8,乙個使用default就出現了編碼與解碼的不一致,導致下位機收到亂碼的資訊。

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

解決:方案一:將下位機的解碼方式改為encoding.utf8.getstring()即可。

方案二:改變上位機的編碼方式即可。encoding.default.getbytes()

注:傳送方使用getbytes()轉成byte陣列傳送,接收方使用getstring()裝換成字串顯示。

同步方式的訊息傳送和非同步方式的訊息傳送

通訊有兩類不同的基本方式 具有依時性的同步方式以及與時間無關的非同步方式。訊息傳送中介軟體有許多不同型別,它們分別都能夠支援一類基本方式的訊息通訊,有時可以支援兩類方式。根據定義,同步執行的特徵為 在兩個通訊應用系統之間必須要進行同步,兩個系統必須都在正常執行,並且會中斷客戶端的執行流,轉而執行呼叫...

同步方式的訊息傳送和非同步方式的訊息傳送

通訊有兩類不同的基本方式 具有依時性的同步方式以及與時間無關的非同步方式。訊息傳送中介軟體有許多不同型別,它們分別都能夠支援一類基本方式的訊息通訊,有時可以支援兩類方式。根據定義,同步執行的特徵為 在兩個通訊應用系統之間必須要進行同步,兩個系統必須都在正常執行,並且會中斷客戶端的執行流,轉而執行呼叫...

GPRS傳送中文簡訊的問題

linux下,板子通過串列埠連線傳送中文簡訊,關於串列埠設定,及傳送英文簡訊很簡單就不說了,先說說如何做,及遇到的問題。linux下,在vim 一定在vim中儲存中文,這個問題下面再提 儲存中文內容,通過iconv函式從當然語言編碼轉為gprs的ucs2的編碼。int encode char mes...