我使用其他搜索引擎构建了自定义搜索网页。等。
对于客户端我编码搜索条件并使用
发送到我的服务器http://xxx.appspot.com/search?q=encodeUIComponent(qTerms)
在服务器端(appengine - python)使用urllib
解码文本喜欢qTerms= urllib.unquote_plus(qTerms)
并且我再次编码了这些血清。
使用qTerms= urllib.quote_plus(qTerms)
现在我从我的服务器发送qTermsto另一台服务器,我得到xml响应。
以上设计适用于纯英语单词,当我将非英语单词传递给下面的givin错误时:
Traceback (most recent call last):
File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/_webapp25.py", line 701, in __call__
handler.get(*groups)
File "/base/data/home/apps/s~searchepic/1.353951740301902288/search.py", line 124, in get
qTerms = urllib.quote_plus(qTerms)
File "/base/python_runtime/python_dist/lib/python2.5/urllib.py", line 1222, in quote_plus
return quote(s, safe)
File "/base/python_runtime/python_dist/lib/python2.5/urllib.py", line 1214, in quote
res = map(safe_map.__getitem__, s)
KeyError: u'\u0c15'
答案 0 :(得分:2)
您需要传递quote()ASCII(str)字符串而不是unicode字符串。term.encode('utf8')
并将结果传递给quote()