Alamofire response 中文亂碼

image form instagram

痛點:最近使用Alamofire進行數據請求,發現使用HandyJSON解析String對象時,中文屬性值全部亂碼;

產生的原因:不管是request亂碼還是response亂碼,其實都是由于客戶端(瀏覽器)跟服務器端采用的編碼格式不一致造成的。以request亂碼為例:瀏覽器向服務器發送請求,因為瀏覽器與服務器之間的通信實質上是socket流,所以要先將請求參數(字符)轉換成字節,也就是編碼過程,服務器接收到請求參數后進行解碼(字節轉字符),然后封裝到request對象中。如果客戶端的編碼與服務器端的解碼不統一,就會導致通過request獲取到的請求參數的值是亂碼。

解決方案:結合項目分析,因為該接口返回的是JSON,所以我改用了Alamofire中的responseJSON鏈方法,替換原來的responseString()。同時項目數據對象模型用的是HandyJSON,所以同時又引用了SwiftyJSON進行輔助解析成String對象供HandyJSON使用,具體解決方案如下圖:(T:為HandyJSON泛型)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容