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

问题描述 投票:0回答:1

所以我在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”

django python-3.x unicode
1个回答
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()
© www.soinside.com 2019 - 2024. All rights reserved.