我有一个包含一些Unicode字符串的dict(以及其他对象)。我想将此dict保存为JSON文件,然后通过AJAX显示此内容。
如果final_res
是dict,我通常会这样做:
json.dumps(final_res, ensure_ascii=True)
在结果中,我看到如下字符串:
"l\\u00a0m\\u00fcdale"
我想这些是unicode编码的字符。但是当我尝试在Javascript中显示它们时,这些是用斜杠打印的,而不是编码的unicode字母。
我是否在Javascript中做错了正确显示这些内容?或者,在输出到JSON之前,我应该在Python中将这些解码为ASCII吗?
更新
根据以下评论中对@spectra的讨论,我意识到json.dumps
不应该输出双斜杠。当我在浏览器中解析它时,会将其打印为文字单斜杠。
我正试图找出一种方法来解决这个问题,json
模块,不确定它为什么会发生。
答案 0 :(得分:0)
我的解决方案是使用“单击”版本将json.dumps
的结果保存到数据库中。我是通过在print
的结果上调用json.dumps
然后将其复制粘贴到数据库来完成的。
答案 1 :(得分:0)
您可以使用UTF8编码json文件而不是转义字符:
json.dumps(final_res,ensure_ascii=False).encode('utf8')
例如
print json.dumps({'name':u'l\u00a0m\u00fcdale'},ensure_ascii=False).encode('utf8')
# {"name": "l müdale"}
然后在客户端AJAX代码中,将编码设置为'utf8': How to set encoding in .getJSON JQuery
$.ajax({ contentType: "application/json; charset=utf-8", ... })