读书人

jython的乱码有关问题

发布时间: 2013-08-26 12:17:40 作者: rapoo

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"}'

?

读书人网 >其他相关

热点推荐