socket.send 發送的字符串,如下 <br> strS = "6800000000000068010243C3D916" <br> Byte[] bytesSent = Encoding.Unicode.GetBytes(strS); <br> socket.Send(bytesSent, bytesSent.Length, 0); <br> <br> <br> 接收到的怎么是些這樣的內容。而不是我發送的包. <br> 用別的測試工具發下去,接收的顯示正常。 <br> < <--服務器已收到:(56)6 <br> < <--36 00 38 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 36 00 38 00 30 00 31 00 30 00 32 00 34 00 33 00 43 00 33 00 44 00 39 00 31 00 36 00 <br> <br> <br> 可能是Encoding轉換有問題,C#能用的編碼都試了,還是不行。誰知道請指教,多謝了。 <br> Encoding.Unicode <br> ASCII <br> Default <br> UTF32 <br> UTF8 <br> UTF7 <br> 這些都試過,不行。
2 回答

慕碼人8056858
TA貢獻1803條經驗 獲得超6個贊
36 00 38 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 36 00 38 00 30 00 31 00 30 00 32 00 34 00 33 00 43 00 33 00 44 00 39 00 31 00 36 00 這個序列是你服務器打印的還是其他工具打印的?這個序列是正確的,和下面代碼轉換 出來的字節序列是一樣的。只不過是16進制表示。 strS = "6800000000000068010243C3D916" Byte[] bytesSent = Encoding.Unicode.GetBytes(strS);

湖上湖
TA貢獻2003條經驗 獲得超2個贊
Encoding.Unicode 的意思,好象是 UTF16, 每個字符,不論中英文,都是用兩位 byte 來表示。
老兄的意思,可能是要用 Encoding.UTF8 來處理。
- 2 回答
- 0 關注
- 744 瀏覽
添加回答
舉報
0/150
提交
取消