繁体   English   中英

如何用jinja2渲染变音符?

[英]How to render umlauts with jinja2?

我正在尝试使用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中以进行显示。

编辑:是我想要什至可能吗? 当我明白这个从这里难道不是吗?

无法使用Jinja2处理非Unicode数据。 原因是Jinja2已经在语言级别使用Unicode。 例如,Jinja2将不间断空格视为表达式内的有效空白,这需要了解编码或对Unicode字符串进行操作。

使用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')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM