{{= XML(some thing)}}无法使用web2py在html中解析

时间:2016-08-20 14:38:03

标签: html json character-encoding web2py magicsuggest

我使用magicsuggest作为web2py的Web应用程序的自动完成插件。我在model / db.py中定义了一个列表变量dt=['张','李']。列表中的元素是中文。然而,根据magicsuggest的手册,我将变量嵌入到像{{=XML(dt)}}这样的html中。中文字符乱码。经过几天的搜索,我发现带有中文字符的列表变量在html中被编码为十六进制。我知道编码/解码有问题。有人可以帮我在html中显示正确的中文字符吗?

1 个答案:

答案 0 :(得分:0)

XML()用于获取字符串,而不是字符串列表。如果你传递的不是字符串,它将首先转换为字符串,因此你的代码等同于{{=XML(str(dt))}},你会发现在Python中,str(['张','李'])产生"['\\xe5\\xbc\\xa0', '\\xe6\\x9d\\x8e']" }。

相反,您可以执行{{=XML(dt[0])}},您会看到列表中的第一个字符正确显示。

如果要显示括号括起的逗号分隔列表,可以执行以下操作:

{{=json.dumps(dt, encoding="UTF-8", ensure_ascii=False)}}