UnicodeDecodeError使用带有欧洲字母的Django smart_str

时间:2019-02-06 15:47:03

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

我遇到错误

  

UnicodeDecodeError:“ ascii”编解码器无法解码位置138的字节0xc3:序数不在范围(128)中

当我尝试做

from django.utils.encoding import smart_str

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

但是documentation表示此功能的默认编码为utf-8,我认为应包含“ø”。我在Python 2.7上使用Django 1.11。我在这里想念什么?

1 个答案:

答案 0 :(得分:0)

因此,阅读this post后,我发现Python 2.7(而不是Python 3.x)在utf-8和unicode之间转换时遇到问题。谁会打它?所以我需要在格式化字符串之前先对其进行解码:

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