所以我在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”
答案 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()