1. 程式人生 > >java程式向mysql新增中文出現問號亂碼

java程式向mysql新增中文出現問號亂碼

問題描述:

    當在java程式中輸入中文時,新增資料到mysql中,所有的文字都變成了問號(?)。如下圖:

java程式:

mysql資料庫:

解決思路:

    查閱資料:

    1、MySQL的預設編碼是Latin1,不支援中文,支援中文的資料庫編碼格式為gbk和utf8(注:在MySQL中要使用utf8,在java程式中使用utf-8,兩者指的都是utf-8)。

    2、MyEclipse的編碼方式和MySQL的編碼方式不一致也會導致亂碼問題。

解決辦法:

   設定MyEclipse的編碼方式:

   本文主要介紹全域性編碼設定:工具欄中的Window-->Preferences-->MyEclipse-->Files and Editors-->JSP-->右側的Encoding將其修改為UTF-8格式即可,如圖:


  設定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


  修改[mysqld]下面的語句:character-set-server=utf8

 

  6、重啟MySQL伺服器

  開始-->執行-->輸入:services.msc,開啟“服務”,找到MySQL服務,右鍵重啟即可。

    設定MySQL編碼方式就三步:1、用命令修改資料庫編碼,2、修改配置檔案,3、重啟服務。

  完成修改後,檢視資料庫編碼方式,如圖:

  大功告成!