【问题标题】:Non latin symbols in django-simple-restdjango-simple-rest 中的非拉丁符号
【发布时间】:2013-04-08 14:51:23
【问题描述】:

制作简单的 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())

【问题讨论】:

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

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


【解决方案1】:

您是否尝试从这个topic 导入codecs

【讨论】:

  • 不幸的是它没有帮助。
【解决方案2】:

已解决))

阅读这份精美的文档:

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

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

【讨论】:

    猜你喜欢
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    • 2013-03-25
    • 1970-01-01
    • 2015-06-26
    • 2015-03-24
    • 1970-01-01
    相关资源
    最近更新 更多