nev*_*sly 2 python django unicode json
我正在使用django v1.5.*,我将渲染一个名为"foobar"的变量,它是一个json obj并包含unicode字符串.
def home( request ):
import json
foo = {"name": u"?????"}
bar = json.dumps( foo )
return render_to_response( 'myapp/home.html',
{ "foobar": bar, },
context_instance=RequestContext(request)
)
在我的模板中,我在javascript中编码json obj,然后追加到div,它可以显示预期的字符串:
foobar=JSON.encode('{{foobar|safe}}');
$("#foobar").html(foobar.name);`
然后我就可以登录?????我的网页了.
但我发现如果我直接使用变量:
<div id="foobar">{{ foobar }}</div>
它会将unicode字符串显示为字节字符串:
{ "name":"\u8d5e\u4e00\u4e0b\u6211\u4eec" }
即使我使用的{{foobar|safe}}话也没有改变.
现在,我想问为什么会发生这种情况或者我有什么不对劲?如果我想直接使用变量,我该怎么办{{ foobar }}?
bar = json.dumps(foo, ensure_ascii=False)将导致bar成为一个unicode对象; 没有ensure_ascii = False,bar是一个str.
Django的smart_text方法也可能对转换很有用.
| 归档时间: |
|
| 查看次数: |
11382 次 |
| 最近记录: |