我在遗留 MySQL 数据库之上设置了一个 django-admin。
数据库声明它是 latin-1 编码的。数据库中输入的一些数据确实是 latin-1,但有些实际上是 UTF-8。这显示为损坏的字符,例如: é € ä ö
遗留应用程序做了一些黑魔法来隐藏这些错误,我无法修改数据库。
我找到了一个 Python 库ftfy
,可以将 latin-1 损坏的 UTF-8 转换为真正的 UTF-8,例如上面的字符被翻译为“é € ä ö”。我想在从数据库加载的所有数据django.db.models.CharField
上使用它。django.db.models.TextField
怎么做?
我试图子类化django.db.models.CharField
,django.db.models.TextField
但不知道从哪里截取数据库中的数据。最佳解决方案类似于FTFYCharField
始终纠正从数据库中获取的数据。