Mako模板中的UnicodeEncodeError

时间:2010-12-21 08:42:41

标签: python mako

我有以下文件

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 (以UTF-8格式保存)

hello world
哈罗世界
${VARIABLE}

我已经审阅了http://www.makotemplates.org/docs/unicode.html

的指示

但是,我仍然会收到错误

  

UnicodeDecodeError:'ascii'编解码器   无法解码位置0中的字节0xe6:   序数不在范围内(128)

我错过了什么?

2 个答案:

答案 0 :(得分:5)

template = Template(filename='../template/dummy.html', default_filters=['decode.utf8'], input_encoding='utf-8', output_encoding='utf-8')

答案 1 :(得分:2)

是的,因为您尝试将其呈现为ASCII,这不起作用。您需要说出要使用的output_encoding:

Template(filename='../template/dummy.html', output_encoding='utf8')

请不要光顾。添加您希望捕获的异常。