在Python/AppEngine中传递GET数据时的UnicodeDecodeError
这个问题看起来很基础,但我一直找不到答案。
我想从一个网址读取数据,比如从查询字符串中获取数据。我在用Python的webapp
框架。我试了以下代码,但因为我对Python和appengine完全是个新手,肯定做错了什么。
class MainPage(webapp.RequestHandler):
def get(self):
self.response.out.write(self.request.get('data'))
application = webapp.WSGIApplication([('/', MainPage),('/search', Search),('/next', Next)],debug=False)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
在我的测试环境中测试时,网址http://localhost/?data=test
返回了下面这个错误信息。如果没有查询字符串,它就像预期的那样显示一个空白页面。
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd6 in position 40: ordinal not in range(128)
我哪里做错了,应该怎么做呢?
2 个回答
2
看看这篇博客,里面讲了如何在Python中正确处理unicode。简单来说,你在尝试把一个字节字符串(隐式地)解码成ASCII格式,但里面有一个字节在这种编码下是不合法的。你的字符串很可能是用UTF-8编码的。