unicode 和字符串编码仍然让我有些头疼。我按照这个问题/答案能够在消息中添加特殊字符(äÄÜ..)。
对于以下结构,我很难理解为什么第 2 版有效而第 1 版无效。
我的模型:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
class Project(models.Model):
"""
Representation of a project
"""
name = models.CharField(max_length=200)
def __unicode__(self):
return '%s ' % (self.name)
版本 1:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
def print_project(self, project):
project_prefix = "Project: "
print (project_prefix + str(project))
版本 2:
# -*- coding: utf-8 -*-
def print_project(self, project):
project_prefix = "Project: "
print (project_prefix + str(project))
如您所见,唯一的区别是我执行此from __future__ import unicode_literals
导入。抛出的错误如下:
'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)