CherryPy url-encoding的问题

时间:2014-02-26 17:05:37

标签: python utf-8 cherrypy

我试图在我的网址变量中获取德语变音符号。 这是我的代码:

class Root:
    def echo(self,input):
        return input
    echo.exposed = True

if __name__ == '__main__':
    cherrypy.quickstart(Root(),'/')

这很好用:

http://localhost:8080/echo/?input=äöüß

结果:äöüß

但是当我尝试时:

http://localhost:8080/echo/äöüß

我得到:äöüÃ

有谁知道原因以及如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

试试这个:

import cherrypy

class Root:
    def echo(self,input):
        return bytes(input, 'Latin-1')
    echo.exposed = True

if __name__ == '__main__':
    cherrypy.quickstart(Root(),'/')

或者这样做:

class Root:
    @tools.encode(encoding='Latin-1')
    def echo(self,input):

Cherrypy默认编码为utf-8。 希望这有帮助!