【发布时间】:2019-05-18 01:40:18
【问题描述】:
所以我在 Django 中有这个字符域:
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”
【问题讨论】:
-
在前后输入
print(repr(rue.name.encode('latin-1'))。这可能会准确说明您在字符串中的内容。我本来希望输出 'Rue Des \xc3\x89coles' 而不是你所说的 'Rue Des \xc3%Coles' 如果它无意中解码了 latin-1 而不是 utf-8 解码(这似乎是一个可能的原因)。 -
html 文档是否使用 latin-1 而不是 utf-8?检查是否有元标记
<meta charset="utf-8"> -
如果您的数据已经以错误的编码保存在数据库中,这个库可以帮助您再次清理它。 ftfy.readthedocs.io/en/latest
标签: django python-3.x unicode