這種不算不正常吧,\u60e7表示的是採用Unicode形式表示一個特殊的字元,當JSON解析器解析到這裡的時候,它就知道這其實只得是個漢字。
沒有接觸過django, 根據
Google Groups
這個連結裡的意思,可能是django強制將輸出的json以ascii編碼的形式傳送的緣故,也就是說客戶端接收到的是\, u, 6, 0, e, 7這幾個字母和符號,共6個位元組,JSON解析器根據這六個字母就能推出這個漢字了。而如果django沒有強制以ascii編碼的話,按照現在網路世界流行的utf-8編碼,客戶端就會接收到3個位元組的資料,由於已經知道了編碼方式,它同樣能反推出來這個漢字。
所以說這種顯示是挺正常的,只不過我們看不懂而已。在瀏覽器上,如果用的是chrome瀏覽器,或者firefox下裝了firebug的話,都能很清楚看到這個json的“中文”形式。
言歸正傳,既然知道產生你所說現象的原因是因為
django強制將輸出的json以ascii編碼的形式傳送
這個原因,我們將它禁止了就行了。具體方法可能就是
@隋柯西
同學所說的那樣,前面提到的那個連結裡討論的也是這個問題,有個回答的人他給出了另外個地址
JSONRenderer that doesn‘t force ascii
, 這或許跟你想知道的答案有很大的相關性,你可以再仔細研究研究。