Django Jquery自动完成亚马逊云搜索编码

Django Jquery自动完成亚马逊云搜索编码,django,character-encoding,amazon,jquery-autocomplete,amazon-cloudsearch,Django,Character Encoding,Amazon,Jquery Autocomplete,Amazon Cloudsearch,Im使用Amazon CloudSearch作为JQuery自动完成选择的源。它工作得很好,但由于我无法识别的原因,当只返回一个结果时,编码就会变得一团糟 解决方案的工作原理如下: 人们键入给定城市的街区或街道的文本输入: <div id="searchFormContainer"> <input type="text" value="&nbsp;Digite o bairro ou rua" name="inputSearch" id="inputSearch

Im使用Amazon CloudSearch作为JQuery自动完成选择的源。它工作得很好,但由于我无法识别的原因,当只返回一个结果时,编码就会变得一团糟

解决方案的工作原理如下:

人们键入给定城市的街区或街道的文本输入:

<div id="searchFormContainer">
    <input type="text" value="&nbsp;Digite o bairro ou rua" name="inputSearch" id="inputSearch"/>
</div>
它成功地工作,调用名为textSearch的python视图,它执行以下操作:

def textSearch(request):
    results = simplejson.loads(requests.get('http://%s/2011-02-01/search?' % (settings.SEARCH_CLOUD_HOST), params=fieldsParameter).text)['hits']
    return HttpResponse(simplejson.dumps(results), mimetype='application/json')
例如,在Cerqueira César附近搜索名为Oscar Freire的街道,当我在自动完成中键入Oscar Fr时,Amazon CloudSearch会返回两个结果:

[16/Apr/2013 23:59:47] "GET /textSearch?strToSearch=Oscar+F&cityName=S%C3%A3o+Paulo HTTP/1.1" 200 682
Neighbourhood from Amazon --> Cerqueira César
Returns from Amazon --> {'id_address': u'52267', 'neighborhoodName': u'Cerqueira C\xe9sar', 'addressName': u'Rua Oscar Freire', 'id_neighborhood': u'19694'}

Neighbourhood from Amazon --> Jardim Anália Franco
Returns from Amazon --> {'id_address': u'61073', 'neighborhoodName': u'Jardim An\xe1lia Franco', 'addressName': u'Rua Jos\xe9 Oscar Abreu Sampaio', 'id_neighborhood': u'19881'}
但是,用搜索关键字“Oscar Fre”再键入一个字母,只返回一个结果:

[16/Apr/2013 23:59:49] "GET /textSearch?strToSearch=Oscar+Fr&cityName=S%C3%A3o+Paulo HTTP/1.1" 200 286
Neighbourhood from Amazon --> Cerqueira CĂŠsar
Returns from Amazon --> {'id_address': u'52267', 'neighborhoodName': u'Cerqueira C\u0102\u0160sar', 'addressName': u'Rua Oscar Freire', 'id_neighborhood': u'19694'}
正如我们在输出中看到的,返回的对象是相同的(两个结果的id\u地址是相同的)。此条目的amazon对象(从CloudSearch提取的原始JSON)是:

{"rank":"-text_relevance","match-expr":"(label 'Oscar Freire')","hits":{"found":1,"start":0,"hit":[{"id":"52267","data":{"address":["Rua Oscar Freire"],"bairro":["Cerqueira César"],"fieldtype":["address"],"id_address":["52267"],"id_neighborhood":["19694"],"latitude":["-23.568315"],"longitude":["-46.66293"],"text_relevance":["310"]}}]},"info":{"rid":"e2467862eecf73","time-ms":3,"cpu-time-ms":0}}
对我来说,很明显的一个事实是,响应对我的python视图进行了错误的编码。。但是我不知道这个问题是从哪里开始的。如果是JQuery自动完成的错误行为,或者是Amazon响应的问题。有什么想法吗


致以最诚挚的问候

我认为找出问题的可能原因很重要。这里有太多可能的编码问题源,您应该从删除可能的问题源开始


如果在浏览器中搜索“Oscar Fr”与“Oscar F”(使用CloudSearch搜索端点),编码是否会发生变化?如果它保持不变,那么问题就不是CloudSearch,您可以向上移动。

我认为隔离问题的可能原因很重要。这里有太多可能的编码问题源,您应该从删除可能的问题源开始

如果在浏览器中搜索“Oscar Fr”与“Oscar F”(使用CloudSearch搜索端点),编码是否会发生变化?如果它保持不变,那么问题就不是CloudSearch,您可以向上移动堆栈

{"rank":"-text_relevance","match-expr":"(label 'Oscar Freire')","hits":{"found":1,"start":0,"hit":[{"id":"52267","data":{"address":["Rua Oscar Freire"],"bairro":["Cerqueira César"],"fieldtype":["address"],"id_address":["52267"],"id_neighborhood":["19694"],"latitude":["-23.568315"],"longitude":["-46.66293"],"text_relevance":["310"]}}]},"info":{"rid":"e2467862eecf73","time-ms":3,"cpu-time-ms":0}}