android 使用socket時候產生的亂碼問題

2021-08-28 06:30:29 字數 719 閱讀 4471

在使用socket與後台進行通訊時,會碰到一些亂碼的問題。

一般碰到亂碼的時候,需要首先考慮的就是字元編碼格式是否統一了,這時候就可以先嘗試轉碼來解決問題。

近日也同樣碰到了這個問題(後來才知道後台返回的是基於mina的socket)。

後台返回的時候,拿到的是包裝過的資料(應該是個幀格式的),

因此,在android端我們也用基於mina的socket框架來收發資訊。

需要注意的是:

//設定協議封裝解析處理

socketconnector.getfilterchain().addlast("protocol", 

new protocolcodecfilter(new framecodecfactory()));

在新建socket的時候也要記得設定協議封裝和解析處理。
public class framecodecfactory implements protocolcodecfactory 

@override

public protocoldecoder getdecoder(iosession iosession) throws exception

}

這裡有兩個方法,乙個是輸出時候編碼 frameencoder(),乙個是接收的時候解碼 framedecoder。

需要有對應的編碼解碼,最後才能拿到正確的資料。

Android 網路程式設計 Socket

socket是對tcp ip協議的封裝,socket本身並不是協議,而是乙個針對tcp和udp程式設計的介面 api 通過socket,我們才能使用tcp ip協議。socket的出現只是使得程式設計師更方便地使用tcp ip協議棧而已,是對tcp ip協議的抽象,從而形成了我們知道的一些最基本的函...

Android利用socket通訊

一台pc和兩部手機,手機作為客戶端和伺服器之間以socket方式通訊,pc作為伺服器在客戶端之間 訊息,實現兩個客戶端之間的通訊。一 客戶端實現 指定ip和埠,新建socket物件。這個ip和埠都要和伺服器那邊的socket一樣。socket msocket new socket ip,port 然...

Android網路程式設計socket

參考博文 為了便於操作,我們客戶端和服務端都放在手機上,等於客戶訪問的服務端就是裝置本身的某乙個埠。下面是服務端的 created by administrator on 2018 5 18.10 47 服務端socket public class serversocket private void...