[Twisted-web] What's the correct way to deal with render_GET and unicode?

exarkun at twistedmatrix.com exarkun at twistedmatrix.com
Thu Aug 27 12:14:32 EDT 2009

On 04:02 pm, markscottwright at gmail.com wrote:
>If I return a unicode string from my Resource's render_GET, I get a
>500 error that says "Request did not return a string".  I guess that
>means I'm responsible for encoding the response, but do I then need to
>write a render_HEAD to set the charset for the message?  Are there any
>examples of how to do this?

Not a render_HEAD.  You do need to set the Content-Type header in the 
response, but you can do that with request.setHeader (or on a very new 
version of Twisted, request.responseHeaders.addRawHeader).  For example,

    def render_GET(self, request):
        request.setHeader("Content-Type", "text/plain; charset=utf-8")
        return u"\N{SNOWMAN}".encode('utf-8')


More information about the Twisted-web mailing list