我从服务器获得了json格式的响应,但当我在htmltemplate中显示时,重音被\ xed更改。 (django框架)
如果我使用json.dumps
,结果是完美的,但是当我不能像字典那样访问模板时。
json.dumps(json_received_from_server, ensure_ascii=False)
我想知道,好吧,让我们将json.dumps
的unicode转换为ast.literal_eval
的dict,但会引发错误(错误格式字符串)。
我尝试了json.loads(json_received)
并且也没有工作。
如何在django模板中正确显示此重音?
THX。
答案 0 :(得分:2)
在处理Django和Python 2.7中的扩展范围字符时,您应该知道有两种类型的字符串:unicode和字符串。您应该尝试将字符串保持为unicode,并让Django的模板渲染引擎处理转换它。您可以判断您的数据是否为带打印的unicode,字符串值前面会有一个“u”...
# byte strings
print "mañana" # => "mañana"
# unicode strings
print u"mañana" # => u"mañana"
确保您的字符串保持unicode,使用非unicode字符串修改字符串将强制Python进行编码并将其转换为字节字符串。通过确保你的字符串自由主义者以“u”作为前缀来避免与下面的例子类似的情况,如下所示:
"Hello" + u" World" # => "Hello World"
u"Hello" + u" World" # => u"Hello World"
u"Hello %s" % "World" # => "Hello World"
u"Hello %s" % u"World" # => u"Hello World"
因此,请查看有问题的代码并确保您处理的字符串保持unicode,使用print验证它们确实保持unicode。