前言
正常情況下,Server端提供給Client端的所有接口的Response中應該有字符集的Header設置:
Content-Type: application/json;charset=UTF-8
如果沒有,可能造成某些平臺的Client中文解析亂碼。
很不幸,我們團隊的Server端開發(fā)人員的意識不夠,很多JSON接口都不規(guī)范,用Charles抓包中文亂碼。
以下為解決Charles中文亂碼的方案:
方案1:修改Charles的配置文件Info.plist
右鍵Charles->在Finder中顯示->右鍵Charles.app->顯示包內(nèi)容->Contents->雙擊打開Info.plist

修改JVMOptions: -Dfile.encoding=UTF-8
網(wǎng)上很多人都是用這種方式,但是我試了下,沒有成功,我的Charles版本是v3.11.1
方案2:在Charles中Rewrite Header
打開Charles->Tool->Rewrite->勾選Enable Rewrite->點擊Sets面板Add按鈕->右側Locations面板點擊Add按鈕輸入url匹配規(guī)則(你server端的url規(guī)則)->右側Rules面板點擊Add按鈕輸入,詳情如下圖:

Charles Rewrite規(guī)則配置
注意:這里需要根據(jù)你Server端返回數(shù)據(jù)的具體情況來,因為我的Server端并沒有返回Content-Type這個Header,并且所有接口都返回了Server: Apache-Coyote/1.1這個Header,所以我這個Rewrite規(guī)則實際上是修改Server: Apache-Coyote/1.1為Content-Type: application/json;charset=UTF-8