jython的乱码问题
searchService/queryBlog?q=["{\"sort_by\":\"desc\",\"sort\":\"last_replied_datetime\",\"page\":1,\"filter\":[\"-photo_id:0\",\"status:0\",\"-pop_score:0\",\"buyable:0\",\"category:9 OR category:1\"],\"key_words\":\"??¥?-? OR ????-?\",\"page_size\":18}"]
?
而python client不会有乱码问题:
searchService/queryBlog?q=["{\"sort\": \"last_replied_datetime\", \"page_size\": 18, \"sort_by\": \"desc\", \"filter\": [\"status:0\", \"category:9 OR category:1\", \"-pop_score:0\", \"-photo_id:0\", \"buyable:0\"], \"key_words\": \"\\u6587\\u5b57 OR \\u53e5\\u5b50\", \"page\": 1}"]?看了一下python client对参数的处理方式:
for param in params: if param is None: param = param elif isinstance(param,(unicode,str,int, float)): param = param elif isinstance(param,datetime): param = time.mktime(param.timetuple()) else: param = json.dumps(param,cls=DbossObjectEncoder) query.append(param)
?可以看到如果是非基本类型会通过json.dumps,原来json.dumps会自动把unicode转换为utf-8:
?
>>> k = {'name':'中文'}>>> k{'name': '\xe4\xb8\xad\xe6\x96\x87'}>>> json.dumps(k)'{"name": "\\u4e2d\\u6587"}'?