Python jinja 2将阿拉伯语传递给rander模板

Python jinja 2将阿拉伯语传递给rander模板,python,google-app-engine,ascii,jinja2,persian,Python,Google App Engine,Ascii,Jinja2,Persian,您好,我在谷歌应用程序引擎中使用jinja2渲染模板,但当im passinf阿拉伯语或波斯语字符串az模板变量时,我收到此错误 فروشگاه {{ name }} UnicodeDecodeError: 'ascii' codec can't decode byte 0xd8 in position 0: ordinal not in range(128) 下面我尝试对它进行编码,这样它就可以被jinja接受,但是字符串根本没有出现 def deccode(n):

您好,我在谷歌应用程序引擎中使用jinja2渲染模板,但当im passinf阿拉伯语或波斯语字符串az模板变量时,我收到此错误

    فروشگاه {{ name }}
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xd8 in position 0: ordinal not in range(128)
下面我尝试对它进行编码,这样它就可以被jinja接受,但是字符串根本没有出现

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>
فروشگاه 
defcode(n):
n=n.解码(“utf-8”)
n=n.encode(“ascii”,“忽略”)
返回n
名称=‘شد’
name=deccode(name)
徽标='roshd'
logo=decode(logo)
ss={'name':名称,'logo':logo}
s=模板。渲染(ss)
فروشگاه 
那么,把阿拉伯语传给jinja 2的最好方法是什么呢?

下面

在python文件的开头包括这一行

# -*- coding: utf-8 -*-

也许您还可以删除自定义deccode()函数

请确保向模板传递unicode字符串。假设您使用的是Python 2,这意味着在字符串文本前面加上
u

name = u'رشد'
另外,去掉自定义解码功能。不需要。但是,请确保将文件保存为UTF-8,并在文件的第一行添加注释,指示@manikandan的答案和注释中提到的文件编码