Django的中文编码问题

Django真的很强大,用了很短的时间就搭了一个简易的Blog,问题又来了,中文内容存入Mysql中是乱码。

经查,Django默认是采用UTF-8编码的,相关文件的格式也都是UTF-8的,问题应该出在Mysql数据库上面。

我是在Mac OS10.6.2上装的64位mysql,默认编码,没改过

进入mysql,通过status命令查看,果然,编码是Latin1

将其改为UTF-8即可解决

单独修改某个数据库可用alter database testdb character set utf8;

统一修改的话,需要在/usr/local/mysql/support-files下[目录因系统而异],找到下列文件 

my-huge.cnf 
my-large.cnf 
my-small.cnf 
... 
这是配置文件模板,copy到/etc/my.cnf,就可以使用这个配置文件,我用了small文件。

在[mysqld]和[client]两个标签下都加入 default_character_set = utf8

重新启动mysql,status结果如下:

mysql> status

--------------

mysql  Ver 14.14 Distrib 5.1.44, for apple-darwin10.2.0 (i386) using readline 5.1

Connection id: 43

Current database:

Current user: root@localhost

SSL: Not in use

Current pager: stdout

Using outfile: ''

Using delimiter: ;

Server version: 5.1.44 MySQL Community Server (GPL)

Protocol version: 10

Connection: Localhost via UNIX socket

Server characterset: utf8

Db     characterset: utf8

Client characterset: utf8

Conn.  characterset: utf8

UNIX socket: /tmp/mysql.sock

Uptime: 1 hour 4 min 20 sec

Threads: 1  Questions: 238  Slow queries: 0  Opens: 50  Flush tables: 1  Open tables: 4  Queries per second avg: 0.61

--------------

再次运行程序,中文成功持久化。
posted @ 2011-05-09 22:21  池建强  阅读(3202)  评论(0编辑  收藏  举报