如何用 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。
编辑:我想要的有可能吗?据我了解 here 不是吗?
It is not possible to use Jinja2 to process non-Unicode data. The
reason for this is that Jinja2 uses Unicode already on the language
level. For example Jinja2 treats the non-breaking space as valid
whitespace inside expressions which requires knowledge of the encoding
or operating on an Unicode string.
使用 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')
我正在尝试使用 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 不是吗?
It is not possible to use Jinja2 to process non-Unicode data. The reason for this is that Jinja2 uses Unicode already on the language level. For example Jinja2 treats the non-breaking space as valid whitespace inside expressions which requires knowledge of the encoding or operating on an Unicode string.
使用 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')