我从服务器得到了 json 格式的响应,但是当我在 html 模板中显示时,重音被\xed 更改了。 (django 框架)
如果我使用 json.dumps 结果是完美的,但那时我无法像字典一样访问模板。
json.dumps(json_received_from_server, ensure_ascii=False)
我想知道,好吧,让我们通过 ast.literal_eval 将 unicode 从 json.dumps 转换为 dict,但它会引发错误(格式错误的字符串)。
我试过 json.loads(json_received) 也没有用。
如何在我的 Django 模板中正确显示这些重音?
谢谢。
请您参考如下方法:
在 Django 和 Python 2.7 中处理扩展范围字符时,您应该知道有两种类型的字符串:unicode 和 byte 字符串。您应该尝试将您的字符串保留为 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。
