@LakeForest

Как получить ответ от сервера в читабельной кодировке (utf-8)?

61ed875cbc378383990071.png
В логах text отображается нормально, но при транспортировке почему-то приходит юникод.

print(json.loads(response.content)) - помог избавиться только от такой записи:
b'"{\\n \\"text\\": \\"\\\\u0441\\\\u0430\\\\u043b\\\\u044e\\\\u0442


print(json.loads(json.loads(response.content))) - очень странная запись для расшифровки. Как передать сразу нормальный ответ?

Поему мой сервис выдает такой ответ, когда в логах пишет в нормальной кодировке?
  • Вопрос задан
  • 538 просмотров
Пригласить эксперта
Ответы на вопрос 3
AlexNest
@AlexNest Куратор тега Python
Работаю с Python/Django
Попробуйте response.content.decode("utf-8")
Ответ написан
@rPman
Сервер на python? формируешь json с помощью json.dumps? добавь опцию ensure_ascii=False и кодируй строку в utf8
json.dumps("Привет!", ensure_ascii=False).encode('utf8')


p.s. если там php то добавь в json_encode опцию JSON_UNESCAPED_UNICODE
Ответ написан
shurshur
@shurshur
Сисадмин, просто сисадмин...
\uXXXX - это вполне валидные с точки зрения json unicode-символы. Модуль json делает их по умолчанию, чтобы не делал, надо json.dump/json.dumps передавать параметр ensure_ascii=False:

>>> print(json.dumps(["Превед!"]))
["\u041f\u0440\u0435\u0432\u0435\u0434!"]
>>> print(json.dumps(["Превед!"], ensure_ascii=False))
["Превед!"]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы