通過Java向Ubuntu16.04服務器的數據庫傳輸數據時中文變成問號

當我發現數據庫中的中文字段都變成了問號時,第一時間修改數據庫表中的字符類型並修改爲utf-8,然後再進行插入數據時,表中的中文字符依舊是問號。

查看mysql資料時,MySQL的默認編碼是Latin1,不支持中文,支持中文的數據庫編碼格式爲gbk和utf8
(注:在MySQL中要使用utf8,在java程序中使用utf-8,兩者指的都是utf-8)。
MyEclipse的編碼方式和MySQL的編碼方式不一致也會導致亂碼問題。

手動設置Mysql數據庫編碼格式:

  1. 進入服務器中輸入命令mysql -u root -p
  2. 輸入密碼後,輸入數據庫查看編碼方式命令:show variables like 'character%';
  3. character_set_client爲客戶端編碼方式;character_set_connection爲建立連接使用的編碼方式;character_set_database爲數據庫的編碼方式;character_set_results是結果集的編碼方式;character_set_server爲數據庫服務器的編碼方式。只要保證以上採用的編碼方式一樣,就不會出現亂碼問題。
  4. 然後退出數據庫進入終端輸入 sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
  5. 進入文件後打開mysqld.cnf 文件,在lc-messages-dir= /usr/share/mysql 語句後添加 character-set-server=utf8 語句
  6. 在終端輸入 sudo vi /etc/mysql/conf.d/mysql.cnf 命令打開mysql.cnf配置文件
    如圖添加代碼:default-character-set=utf8

  7. 在終端中輸入  /etc/init.d/mysql restart 命令重啓MySQL服務,最後mysql修改成功,插入中文正常顯示。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章