由于开发环境一直使用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;