【发布时间】:2018-06-28 23:12:34
【问题描述】:
我正在尝试用 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 字符串进行操作。
【问题讨论】:
-
您几乎肯定想在此处指定编码,详见the documentation for
dump。 -
这没有帮助。
-
<head> and <body>呢? -
不。这也没有用。
-
您如何检查输出文件?这看起来好像您只是使用为 Latin-1 配置的查看器来查看实际上完全正确 UTF-8 的文本。另请参阅Stack Overflow
character-encodingtag info page,它更详细地解释了这一点。
标签: python jinja2 diacritics