jinja2 将阿拉伯语传递给渲染模板
jinja 2 passing arabic to rander template
嗨,我在 google 应用程序引擎中使用 jinja2 来渲染模板,但是当我 passinf 阿拉伯语或波斯语字符串 az 模板变量时,我得到这个错误
فروشگاه {{ name }}
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd8 in position 0: ordinal not in range(128)
下面我尝试对其进行编码,以便它可以被神社接受,但该字符串根本没有出现
def deccode(n):
n = n.decode("utf-8")
n = n.encode("ascii","ignore")
return n
name = 'رشد'
name = deccode(name)
logo = 'roshd'
logo = deccode(logo)
ss = {'name': name, 'logo': logo}
s = template.render(ss)
<div class=" title">
<i class="dropdown icon"></i>
فروشگاه
那么将阿拉伯语传递给 jinja 2 的最佳方法是什么?
关注https://www.python.org/dev/peps/pep-0263/
在 python 文件的开头包含这一行
# -*- coding: utf-8 -*-
也许您还可以删除自定义 deccode() 函数
确保将 unicode 字符串传递给模板。假设你在 Python 2 这意味着在字符串文字前加上 u
:
name = u'رشد'
此外,删除您的自定义解码函数。不需要。确保将文件保存为 UTF-8,并在文件的第一行添加注释,指示文件的编码,如@manikandan 的回答和 PEP 263
中所述
嗨,我在 google 应用程序引擎中使用 jinja2 来渲染模板,但是当我 passinf 阿拉伯语或波斯语字符串 az 模板变量时,我得到这个错误
فروشگاه {{ name }}
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd8 in position 0: ordinal not in range(128)
下面我尝试对其进行编码,以便它可以被神社接受,但该字符串根本没有出现
def deccode(n):
n = n.decode("utf-8")
n = n.encode("ascii","ignore")
return n
name = 'رشد'
name = deccode(name)
logo = 'roshd'
logo = deccode(logo)
ss = {'name': name, 'logo': logo}
s = template.render(ss)
<div class=" title">
<i class="dropdown icon"></i>
فروشگاه
那么将阿拉伯语传递给 jinja 2 的最佳方法是什么?
关注https://www.python.org/dev/peps/pep-0263/
在 python 文件的开头包含这一行
# -*- coding: utf-8 -*-
也许您还可以删除自定义 deccode() 函数
确保将 unicode 字符串传递给模板。假设你在 Python 2 这意味着在字符串文字前加上 u
:
name = u'رشد'
此外,删除您的自定义解码函数。不需要。确保将文件保存为 UTF-8,并在文件的第一行添加注释,指示文件的编码,如@manikandan 的回答和 PEP 263
中所述