Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 8, 2013 19:00:41

skyfantom
Зарегистрирован: 2013-04-08
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

django-simple-rest, json, кириллица

Привет.

Делаю для своего бложика REST (на базе django-simple-rest) сервис который в будущем буду использовать для мобильного приложения, все бы ничего но кириллица отдается в формате:

\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 = "Кириллица"

Это что выходит мне надо словарь recipes_rest перевести в utf-8 принудительно?

Отредактировано skyfantom (Апрель 8, 2013 19:00:52)

Офлайн

#2 Апрель 9, 2013 09:07:44

skyfantom
Зарегистрирован: 2013-04-08
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

django-simple-rest, json, кириллица

Парни, да ладно(

Офлайн

#3 Апрель 9, 2013 13:43:52

skyfantom
Зарегистрирован: 2013-04-08
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

django-simple-rest, json, кириллица

Причем, если указать xml, то все отлично:

contacts = serializers.serialize("xml", Post.objects.all())
return HttpResponse(contacts, content_type='application/xml; charset=utf8', status=200)

А json нет(( получаю: \u041c\u043e\u043b\u043e\u043a\u043e
contacts = serializers.serialize("json", Post.objects.all())
return HttpResponse(contacts, content_type='application/json; charset=utf8', status=200)

Отредактировано skyfantom (Апрель 9, 2013 13:47:57)

Офлайн

#4 Апрель 9, 2013 13:52:54

skyfantom
Зарегистрирован: 2013-04-08
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

django-simple-rest, json, кириллица

Решено. Ура) Читать документацию и читать.
If you’re using UTF-8 (or any other non-ASCII encoding) data with the JSON serializer, you must pass ensure_ascii=False as a parameter to the serialize() call. Otherwise, the output won’t be encoded correctly.

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

Отредактировано skyfantom (Апрель 9, 2013 13:53:04)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version