告诉MySQL连接使用UTF-8和Django

时间:2011-08-23 08:32:39

标签: mysql django unicode utf-8

我已经使用UTF8编码将一些数据上传到MySQL(5.5.15 for osx10.6)数据库,但由于某种原因,我必须在我加载它时将其编码指定为latin1。

我认为这部分很好,因为当我写一个OUTFILE时,我的unicode'nu'字符在终端和Vim中出现了。

但是,当我在MySQL会话中查看它们时,当我尝试编辑Django admin中的字段时,我会遇到损坏的字符(latin1?)。

所以,我的问题是:如何告诉MySQL客户端和(特别是)Django将我的数据库读取为UTF-8,它的方式是什么?

在命令行,我试过

--default_character_set=utf8 

以及

'SET NAMES UTF8;'

在MySQL提示符下,但它们不起作用。

当我看到VARIABLES LIKE'char%'时,除了character_set_server(latin1)之外,它们都被设置为utf8。如果我把它设置为utf8 ....那也不起作用。

如果有人能在这里给我一些指导,尤其是关于如何配置Django以正确地与我的数据库通信,我将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:2)

添加.cnf

[mysqld]
character-set-server = utf8
collation-server     = utf8_general_ci
skip-character-set-client-handshake