前言
正常情況下,Server
端提供給Client
端的所有接口的Response
中應該有字符集的Header
設置:
Content-Type: application/json;charset=UTF-8
如果沒有,可能造成某些平臺的Client
中文解析亂碼。
很不幸,我們團隊的Server
端開發人員的意識不夠,很多JSON
接口都不規范,用Charles抓包中文亂碼。
以下為解決Charles中文亂碼的方案:
方案1:修改Charles
的配置文件Info.plist
右鍵Charles->在Finder中顯示->右鍵Charles.app
->顯示包內容->Contents->雙擊打開Info.plist
修改JVMOptions: -Dfile.encoding=UTF-8
網上很多人都是用這種方式,但是我試了下,沒有成功,我的Charles版本是v3.11.1
方案2:在Charles
中Rewrite
Header
打開Charles
->Tool->Rewrite->勾選Enable Rewrite
->點擊Sets
面板Add
按鈕->右側Locations
面板點擊Add
按鈕輸入url匹配規則(你server端的url規則)->右側Rules
面板點擊Add
按鈕輸入,詳情如下圖:
Charles Rewrite規則配置
注意:這里需要根據你Server
端返回數據的具體情況來,因為我的Server
端并沒有返回Content-Type
這個Header,并且所有接口都返回了Server: Apache-Coyote/1.1
這個Header,所以我這個Rewrite
規則實際上是修改Server: Apache-Coyote/1.1
為Content-Type: application/json;charset=UTF-8