iOS如何將服務(wù)器返回的JSON數(shù)據(jù)中Unicode編碼的字體打印成中文
可能很多iOS開(kāi)發(fā)的同行都會(huì)遇到過(guò)一個(gè)問(wèn)題,當(dāng)我們?cè)谡{(diào)試后臺(tái)接口的時(shí)候,后臺(tái)返回的JSON數(shù)據(jù)中通常都帶有中文,但是我們?cè)诳刂婆_(tái)打印出來(lái)的中文卻是以Unicode編碼的,所以顯示出來(lái)的就類(lèi)似下面這樣:
但是實(shí)際開(kāi)發(fā)中,我們常常都需要直接看到UTF8編碼的中文,這時(shí)我們可以為控制臺(tái)LLDB安裝一個(gè)比較實(shí)用的腳本:chisel,英文基礎(chǔ)比較好的童鞋也可以參考github上面chisel的詳細(xì)安裝教程說(shuō)明,github地址是:chisel的github地址,當(dāng)然,我們天朝人民還是中文比較習(xí)慣,所以我也總結(jié)了中文的安裝使用教程,下面我們就看下怎么去安裝和使用它.
1.安裝chisel之前必須要安裝有brew,如果你的mac沒(méi)有安裝brew,就需要安裝一下home brew,教程鏈接如下:OS X 不可或缺的套件管理器Homebrew的安裝及其常用命令
2.安裝好brew后,就可以在終端執(zhí)行以下命令了
brew update
3.上面的安裝步驟完畢以后,接著執(zhí)行
brew install chisel
這個(gè)命令執(zhí)行完畢后,要注意查看終端的打印,如下面所顯示的,主要關(guān)注的是Caveats里面的說(shuō)明,大致意思:我們需要給.lldbinit這個(gè)文件注入一段腳本以.lldbinit跟Xcode的LLDB關(guān)聯(lián)起來(lái).
但是lldbinit這個(gè)文件我怎么知道在哪里?怎么往里面添加腳本命令呢?說(shuō)實(shí)話我剛才也有點(diǎn)搞不清楚,不過(guò)經(jīng)過(guò)幾次嘗試后,總算搞定了,首先我們先執(zhí)行一下命令:
open ~/.lldbinit
如果能打開(kāi),則證明你已經(jīng)安裝有這個(gè)文件,如果不能打開(kāi),那么你就需要安裝一下,安裝的命令是:
touch ~/.lldbinit
4.如果lldbinit文件存在的話,我們就需要執(zhí)行以下的命令往這個(gè)文件中寫(xiě)入腳本了:
echo ?command script import /usr/local/opt/chisel/libexec/fblldb.py >> ~/.lldbinit
需要注意的是,command script import /usr/local/opt/chisel/libexec/fblldb.py就是之前提到的Caveats里面的說(shuō)明,不要直接復(fù)制我的去執(zhí)行,有可能你電腦上的是不一樣的,所以如果你的不一樣,那么就把這部分替換成你自己的.
5.然后退出Xcode,重啟xcode,在任意位置打個(gè)斷點(diǎn)讓程序進(jìn)入Xcode控制臺(tái)的lldb調(diào)試器,先輸入一下命令:
command source ~/.lldbinit
然后,你可以在控制臺(tái)輸入help,就會(huì)看到很多的命令,其中有一項(xiàng)就是我們所提到的把JSON數(shù)據(jù)的中文打印出來(lái)
這時(shí)可以運(yùn)行你的程序,在你需要打印的地方打個(gè)斷點(diǎn),然后執(zhí)行命令
pjson object
object是你要打印的內(nèi)容,如服務(wù)器返回的responseObject,接下里就能看到凡是中文都能正常顯示了,如下圖:
至此大功告成,想提醒大家的是,其實(shí)chisel的功能很強(qiáng)大,不僅僅是本文提到的轉(zhuǎn)中文輸出的問(wèn)題,通過(guò)help命令你能看到有很多的功能,這些就有待大神們?nèi)ネ诰蛄?當(dāng)然,發(fā)現(xiàn)實(shí)用的功能也可以跟我分享,也不枉我敲了這么多東西跟大家分享.