Java程序向MySql數據庫中插入的數據變成了問號

最近在做的一個Java實例項目中,有一個功能就是想數據庫中添加記錄。功能的業務邏輯本身是很簡單的,但是結果卻是插入的記錄中的漢字全部都變成了問號。


數據庫:


其實,當我們看到這個問題的時候都會很快的想到是編碼格式的問題。但是當我查看MyEclipse中的編碼格式的時候發現,編碼方式是沒有問題的,而且自己寫的JSP頁面中的編碼格式也是沒有問題的。那麼這會嘛原因的?

後來在查看Mysql的資料時候發現:

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

 所以解決方案也很容易了——手動設置Mysql數據庫編碼格式:


1、查看數據庫編碼方式命令:show variables like 'character%';

  2、修改數據庫編碼方式:alter database test(數據庫名稱) character set utf8;

  3、創建數據庫時,指定數據庫的編碼方式:createdatabase test(數據庫名稱) character set utf8;

  4、執行查看編碼方式的命令後,出現如圖所示信息。

      從以上信息可知數據庫的編碼方式爲latin1,其中,character_set_client爲客戶端編碼方式;character_set_connection爲建立連接使用的編碼方式;character_set_database爲數據庫的編碼方式;character_set_results是結果集的編碼方式;character_set_server爲數據庫服務器的編碼方式。只要保證以上採用的編碼方式一樣,就不會出現亂碼問題。
  5、修改配置文件my.ini:
  修改[client]下面的語句:default-character-set=utf8


 6、重啓MySQL服務器
   開始-->運行-->輸入:services.msc,打開“服務”,找到MySQL服務,右鍵重啓即可。

發佈了102 篇原創文章 · 獲贊 15 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章