當我發現數據庫中的中文字段都變成了問號時,第一時間修改數據庫表中的字符類型並修改爲utf-8,然後再進行插入數據時,表中的中文字符依舊是問號。
查看mysql資料時,MySQL的默認編碼是Latin1,不支持中文,支持中文的數據庫編碼格式爲gbk和utf8
(注:在MySQL中要使用utf8,在java程序中使用utf-8,兩者指的都是utf-8)。
MyEclipse的編碼方式和MySQL的編碼方式不一致也會導致亂碼問題。
手動設置Mysql數據庫編碼格式:
- 進入服務器中輸入命令mysql -u root -p
- 輸入密碼後,輸入數據庫查看編碼方式命令:show variables like 'character%';
- character_set_client爲客戶端編碼方式;character_set_connection爲建立連接使用的編碼方式;character_set_database爲數據庫的編碼方式;character_set_results是結果集的編碼方式;character_set_server爲數據庫服務器的編碼方式。只要保證以上採用的編碼方式一樣,就不會出現亂碼問題。
- 然後退出數據庫進入終端輸入 sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
- 進入文件後打開mysqld.cnf 文件,在lc-messages-dir= /usr/share/mysql 語句後添加 character-set-server=utf8 語句
在終端輸入 sudo vi /etc/mysql/conf.d/mysql.cnf 命令打開mysql.cnf配置文件
如圖添加代碼:default-character-set=utf8在終端中輸入 /etc/init.d/mysql restart 命令重啓MySQL服務,最後mysql修改成功,插入中文正常顯示。