我试图用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字符串。
答案 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')