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