用unicode Django和python3.7替换字符串

时间:2018-12-17 16:38:47

标签: django python-3.x unicode

所以我在Django中有这个charfield:

class Rue(models.Model):
    created = models.DateTimeField(null=True, blank=True, editable=False)
    modified = models.DateTimeField(null=True, blank=True)
    name = models.CharField(blank=True, null=True, max_length=200)

这是我的剧本:

print(rue.name)
rue.name = rue.name.replace("Ã%Coles","Ecoles")
print(rue.name)
rue.save()

我想更正导入文件的错误,并清理数据库。 我想用“ Ecoles”代替“Ã%Coles”。

但是输出是:

Rue Des Ã%Coles
Rue Des Ã%Coles

如何清洁?我想用“ Ecoles”代替“Ã%Coles”

1 个答案:

答案 0 :(得分:1)

这看起来像是破损的编码,您看到的%C不是百分号后跟C,而是一个可能会进一步改变的单个控制字符。

在我的系统上:

>>> print('Écoles'.encode('utf-8').decode('iso-8859-1'))
à coles

要解决此单个问题,您可以执行以下操作:

broken_e = 'É'.encode('utf-8').decode('iso-8859-1')
rue.name = rue.name.replace(broken_e, 'E')
rue.save()