|
Nicolas Lehuen
nicolas at lehuen.com
Sun Jun 25 09:37:16 EDT 2006
Hi,
I suppose you did it as an example, but if you've got a file encoded
in UTF-8, you don't need to decode it and reencode it. Just send the
bytes to the client, making sure that the Content-Type header mentions
that UTF-8 is used :
def handler(req):
req.content_type = 'text/plain; charset=utf-8'
req.sendfile(os.path.dirname(__file__) + "/myfile.txt")
Using sendfile is advertised to be the most efficient way to send a
file to the client.
Regards,
Nicolas
2006/6/25, b3nder <b3nder at yandex.ru>:
> Hi, list.
>
> Tell me please how to use utf-8 in ouput?
>
> from mod_python import apache
> import codecs
> import os
>
>
> def handler(req):
> req.content_type = 'text/plain; charset=utf-8'
> req.send_http_header()
> file = codecs.open(
> os.path.dirname(__file__) + "/myfile.txt", "r", "utf-8")
> a = file.read()
> req.write(a)
>
> return apache.OK
>
>
> gives error UnicodeEncodeError: 'ascii' codec can't encode
> characters in position 0-5: ordinal not in range(128)
>
> Thanks.
> _______________________________________________
> Mod_python mailing list
> Mod_python at modpython.org
> http://mailman.modpython.org/mailman/listinfo/mod_python
>
|