Найти - Пользователи
Полная версия: django-simple-rest, json, кириллица
Начало » Django » django-simple-rest, json, кириллица
1
skyfantom
Привет.

Делаю для своего бложика 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
Парни, да ладно(
skyfantom
Причем, если указать 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
Решено. Ура) Читать документацию и читать.
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)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB