回覆列表
-
1 # 使用者6649344209713
-
2 # 使用者57358069570
使用者在Textarea輸入內容時,有時候會輸入雙引號,回車或者換行符,儲存時,這些特殊符號也也文字內容一起儲存到資料庫裡去了,當獲取這些資料時,Json的解析就會出錯
使用者在Textarea輸入內容時,有時候會輸入雙引號,回車或者換行符,儲存時,這些特殊符號也也文字內容一起儲存到資料庫裡去了,當獲取這些資料時,Json的解析就會出錯
這種不算不正常吧,\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 , 這或許跟你想知道的答案有很大的相關性,你可以再仔細研究研究。