今天在本地搭建環(huán)境之后,app端寫入后臺發(fā)現(xiàn)中文無法正確寫入,全部顯示為???,摸索了一會,設置過tomcat環(huán)境也設置過數(shù)據(jù)庫字符集,結果還是不行,后來咨詢大佬們,嘗試如下:
先在數(shù)據(jù)庫中查詢字符編碼:
show VARIABLES like 'char%';
結果如下:
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | J:\mysql-5.7.16-winx64\share\charsets\ |
+--------------------------+----------------------------------------+
發(fā)現(xiàn)character_set_server
這是個叛徒!原因是MySQL的默認編碼是拉丁,所以打開mysql的安裝目錄,找到my.ini,在[mysqld]最后下面加上
character_set_server=utf8
init_connect='SET NAMES utf8'
之后重啟MySQL。
再查看一下編碼,結果變?yōu)椋?/p>
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | J:\mysql-5.7.16-winx64\share\charsets\ |
敵軍被干掉了,測試也一切正常了~