1

我在 Django Admin 站点上发生了一个奇怪的问题,我将 html 片段存储在文本字段中。

在此处输入图像描述

一旦我点击保存,该字段将变为:

在此处输入图像描述

这很好——HTML 无论如何都能正确呈现。真正的问题是当我再次点击保存时:

在此处输入图像描述

所有 HTML 实体都受此错误影响,包括 .

为什么会这样?


  • 操作系统:亚马逊 Linux x64
  • 蟒蛇:2.6
  • 姜戈:1.4
  • 数据库:MySQL 5.5
4

1 回答 1

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;

但是你必须手动为每个表应用它。尽管我认为可以仅将其应用于您遇到问题的表。

确保在执行此操作之前备份数据。

于 2013-08-07T06:17:06.913 回答