I have the following files
dummy.py
#!c:/Python27/python.exe -u
from mako import exceptions
from mako.template import Template
print "Content-type开发者_高级运维: text/html"
print
#VARIABLE = "WE"
VARIABLE = "我们"
template = Template(filename='../template/dummy.html', output_encoding='utf8')
try:
print template.render(VARIABLE=VARIABLE)
except:
print exceptions.html_error_template().render()
dummy.html (Saved in UTF-8 format)
hello world
哈罗世界
${VARIABLE}
I had refereed to the instruction from http://www.makotemplates.org/docs/unicode.html
However, I still get error
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128)
Anything I had missed out?
template = Template(filename='../template/dummy.html', default_filters=['decode.utf8'], input_encoding='utf-8', output_encoding='utf-8')
Yes, because you are trying to render it to ASCII, which doesn't work. You need to say what output_encoding to use:
Template(filename='../template/dummy.html', output_encoding='utf8')
And please don't have bare excepts. Add what exceptions you expect to catch.
精彩评论