由于開發環境一直使用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;