下面是測試程序,包括中國性狀:python:json.dumps無法處理utf-8?
# -*- coding: utf-8 -*-
import json
j = {"d":"中", "e":"a"}
json = json.dumps(j, encoding="utf-8")
print json
下面是結果,看json.dumps轉換UTF-8到原來的數字!
{"e": "a", "d": "\u4e2d"}
爲什麼這被打破?或者我錯了什麼?
下面是測試程序,包括中國性狀:python:json.dumps無法處理utf-8?
# -*- coding: utf-8 -*-
import json
j = {"d":"中", "e":"a"}
json = json.dumps(j, encoding="utf-8")
print json
下面是結果,看json.dumps轉換UTF-8到原來的數字!
{"e": "a", "d": "\u4e2d"}
爲什麼這被打破?或者我錯了什麼?
看起來像我有效的JSON。如果你想讓json
輸出一個非ASCII字符的字符串,那麼你需要通過ensure_ascii=False
然後手動編碼。
這是幫助我的答案! – borrrden 2012-07-31 02:57:26
文檔:http://docs.python.org/2/library/json.html#basic-usage – 2013-02-08 05:58:27
使用simplejson與上面提到的選項:
# -*- coding: utf-8 -*-
import simplejson as json
j = {"d":"中", "e":"a"}
json = json.dumps(j, ensure_ascii=False, encoding="utf-8")
print json
前前後後:
{"e": "a", "d": "中"}
首先:__don't命名你的變種json__你將無法再後是訪問JSON lib下,其次沒有什麼是壞的,除了默認的json編碼是utf-8,所以你不必把它添加到dump()參數中。 – mouad 2010-11-15 12:09:00
如果我可以接受它將二進制utf-8數據轉換爲「\ u4e2d」,我怎樣才能將它轉換回JavaScript中的二進制utf-8,這是客戶端接收這些數據? – 2010-11-15 12:12:29
你有沒有嘗試過?,我的意思是把它發送到瀏覽器,我想如果你使用一個複雜的JavaScript庫,它會知道如何處理它。 – mouad 2010-11-15 12:24:10