我想将 dict 转储为包含一些中文字符的 json 字符串,并用它格式化一个 url 请求参数。
这是我的python代码:
import httplib
import simplejson as json
import urllib
d={
"key":"上海",
"num":1
}
jsonStr = json.dumps(d,encoding='gbk')
url_encode=urllib.quote_plus(jsonStr)
conn = httplib.HTTPConnection("localhost",port=8885)
conn.request("GET","/?json="+url_encode)
res = conn.getresponse()
我对请求字符串的期望是这样的:
GET /?json=%7B%22num%22%3A+1%2C+%22key%22%3A+%22%C9%CF%BA%A3%22%7D
------------
|
V
"%C9%CF%BA%A3" represent "上海" in format of 'gbk' in url.
但我得到的是:
GET /?json=%7B%22num%22%3A+1%2C+%22key%22%3A+%22%5Cu6d93%5Cu5a43%5Cu6363%22%7D
------------------------
|
v
%5Cu6d93%5Cu5a43%5Cu6363 is 'some' format of chinese characters "上海"
我还尝试使用ensure_ascii=False
以下选项转储 json:
jsonStr = json.dumps(d,ensure_ascii=False,encoding='gbk')
但没有运气。
那么,我怎样才能使这项工作?谢谢。