Django+MySQL下中文问题

由于开发环境一直使用sqlite,没有遇到中文字符的储存问题,所以一直没有注意到这个问题.但是将程序迁移到服务器连接MySQL时遇到了中文储存的问题,下面列出解决方法.

>>>mysql -uroot -p以root身份进入mysql客户端,

show variables like 'character%';查看数据库编码

| character_set_database   | latin1                     |
| character_set_server     | latin1                     |

可以看到如上结果,退出mysql.
找到[client]添加default-character-set=utf8
找到[mysqld]添加character-set-server = utf8

  • 注 网上有的解决办法是在[mysqld]中添加default-character-set=utf8这个方法在新版本的mysql中将不成功.
    重启mysql服务
    再进入mysql运行show variables like 'character%';查看数据库编码

    | character_set_database   | utf8                       |
    | character_set_server     | utf8                       |
    

问题解决

对于数据库中已有数据,可以直接修改表的编码方式解决问题.
alter database %databaseName character set utf8;
alter database %databaseName collate utf8_general_ci;

你可能感兴趣的:(Django+MySQL下中文问题)