我在Django Admin网站上发生了一个奇怪的问题,我将html片段存储在文本字段中。
一旦我点击保存,该字段就变为:
哪个好 - 无论如何HTML都正确呈现。真正的问题是当我再次点击保存时:
所有HTML实体都受此错误的影响,包括
。
为什么会这样?
答案 0 :(得分:1)
您的问题是Django将您的数据插入unicode
,但您的mysql将其存储为latin_swedish
。
如果您不使用South,请使用DROP DATABASE foo;
删除数据库。然后使用CREATE DATABASE foo CHARACTER SET UTF8;
重新创建它并再次运行syncdb
。
或者,您可以通过执行以下操作转换现有数据库:
ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE tablename CHARACTER SET utf8 COLLATE utf8_general_ci;
但是你必须手动为每个表应用它。虽然我认为只有将它应用于桌面才会遇到问题。
确保在执行此操作之前备份数据。