最近在把玩 django
于是决定用mysql 数据库, 当写好一个简单的app 时, 发布上去首先要做的就是根据model 自动生成 表
问题来了:
生成的编码格式是:古老的 latin1 编码
好了,下面说解决方案:
1:首先确保你创建的数据库是utf8 编码的
创建数据库的时候最好这样进行创建:
创建一个testDataBase 的数据库,顺便指定编码格式
CREATE DATABASE testDataBaseCHARACTER SET 'utf8'COLLATE 'utf8_general_ci';
2: 创建表的时候指定 表的编码格式
CREATE TABLE 'testTable'( 若干的字段...) ENGINE=InnoDB DEFAULT CHARSET=utf8;
当然,我前面说了,django 自动根据model 生成 表,这步就不起作用了.于是涉及到配置文件
找到/etc/my.cnf
加入以下
几个设置:(我的mysql 版本是5.5)
[client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]collation-server = utf8_unicode_ciinit-connect='SET NAMES utf8'character-set-server = utf8
ok,完美解决问题.
登入 mysql 查看生成表的编码: