我有以下代码,它使用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模板?
答案 0 :(得分:0)
data = {
u'x2' : u'x²'
}
使用unicode字符串。
答案 1 :(得分:0)
为了解决这个问题,我最终不得不使用超级脚本的unicode值,因此对于上标2,我使用了u' \ xb2'