django-simple-rest中的非拉丁符号

时间:2013-04-08 14:51:23

标签: python django encoding utf-8 python-2.7

制作简单的REST服务(在django-simple-rest上),在第一次迭代计划中只有GET。一切都很好,但作为回应我收到了西里尔符号:

>\u041c\u043e\u043b\u043e\u043a\u043e

在我的实验中,我找到了一条线:

recipes_rest = json_serializer.serialize(Post.objects.all())
return HttpResponse(recipes_rest, content_type='application/json; charset=utf8', status=200) 

如果我使用:

recipes_rest = 'some non latin symbols'
一切都很好。但就我而言http://cooktalks.ru/contacts我无法找到解决方案。也许我必须在这一行做某事(?):

recipes_rest = json_serializer.serialize(Post.objects.all())

更新 如果我使用' xml',一切都很好: contacts = serializers.serialize("xml", Post.objects.all())

2 个答案:

答案 0 :(得分:1)

topic开始,您是否尝试导入codecs

答案 1 :(得分:0)

<强>解决))

阅读这篇精美的文档:

如果您在JSON序列化程序中使用UTF-8(或任何其他非ASCII编码)数据,则必须将ensure_ascii = False作为参数传递给serialize()调用。否则,输出将无法正确编码。

json_serializer.serialize(queryset, ensure_ascii=False, stream=response)