如何用jinja2渲染变音符号?

时间:2018-01-19 16:40:34

标签: python jinja2 diacritics

我试图用jinja2渲染一些基本的变音符号。

的test.html

<!doctype html>
<link type="text/css" rel="stylesheet" href="style.css"/>
<meta charset="UTF-8">
<h3>Umlauts: ä ü ö</h3>

Result.html

<!doctype html>
<link type="text/css" rel="stylesheet" href="style.css"/>
<meta charset="UTF-8">
<h3>Umlauts: ä ü ö</h3>

我的代码

from jinja2 import Template

file = open("test.html")
data = file.read()
Template(data).stream().dump("index.html")

现在我不明白如何让jinja正确处理变音符号。我怎样才能做到这一点?我正在使用流,因为在我的实际用例中,我提供了一些数据来填写,然后将其转储到html中进行显示。

编辑:我想要的甚至可能吗?据我所知here,这不是吗?

  

无法使用Jinja2处理非Unicode数据。该   原因是Jinja2已经在语言上使用了Unicode   水平。例如,Jinja2将非中断空格视为有效   表达式中的空白,需要知道编码   或者使用Unicode字符串。

1 个答案:

答案 0 :(得分:1)

使用Python3,您可以使用open指定编码。

from jinja2 import Template

file = open("test.html", 'r', encoding='utf-8')
data = file.read()
Template(data).stream().dump('index.html')

对于Python2,您可以使用io模块指定编码。

import io

file = io.open("test.html", 'r', encoding='utf-8')