UnicodeDecodeError с использованием Django smart_str с европейскими буквами - PullRequest
0 голосов
/ 06 февраля 2019

Я получаю сообщение об ошибке

UnicodeDecodeError: кодек «ascii» не может декодировать байт 0xc3 в позиции 138: порядковый номер не в диапазоне (128)

, когдаЯ пытаюсь сделать

from django.utils.encoding import smart_str

u'{}'.format(smart_str('ø'))

, но документация говорит, что кодировкой по умолчанию для этой функции является utf-8, которая, как я думал, должна включать 'ø'.Я использую Django 1.11 на Python 2.7.Что мне здесь не хватает?

1 Ответ

0 голосов
/ 06 февраля 2019

Итак, читая этот пост Я обнаружил, что в Python 2.7 (но не в Python 3.x) есть проблемы с преобразованием между utf-8 и unicode.Кто это сделал?Поэтому мне нужно было декодировать мою строку перед форматированием:

u'{}'.format(smart_str('ø').decode('utf-8'))
...