python / jinja2问题包含unicode字符的渲染模板

时间:2014-11-10 05:23:22

标签: python jinja2

我有以下代码,它使用jina2引擎来渲染一些html。

env = jinja2.Environment(loader=templateLoader, autoescape=True,trim_blocks=True)
template = env.get_template("template.html")
...
data = {
    'title' : 'test'
}
html = template.render(data)

在模板中,如果我添加以下javascript行,渲染失败(注意上标):

var x2 = 'x²';

例外是:

File "C:\python_2.7\lib\site-packages\jinja2\filters.py", line 747, in do_mark_safe
File "C:\python_2.7\lib\site-packages\markupsafe\__init__.py", line 74, in __new__
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 6689: ordinal not in range(128)

如何在jinja2 / python中使用包含非ascii字符的html模板?

2 个答案:

答案 0 :(得分:0)

data = {
    u'x2' : u'x²'
}

使用unicode字符串。

答案 1 :(得分:0)

为了解决这个问题,我最终不得不使用超级脚本的unicode值,因此对于上标2,我使用了u' \ xb2'