1. 程式人生 > >Java插入中文到資料庫中文變成問號解決

Java插入中文到資料庫中文變成問號解決

之所以會出現亂碼,就是編碼方式不一致導致的

我們應該首先確定

         1. eclipse和mysql資料庫中的編碼方式是否一致

         2. 在連結資料時,有沒有在url裡面加上characterEncoding=utf8,也就是下圖這樣

           

如果都解決了基本就沒有問題了。

但是我"確定"了以上的方式都沒問題,還是出現亂碼

連結資料庫的時候也加上了編碼方式,但是還是會亂碼,一定還是編碼方式不一致導致的。eclipse的編碼方式和資料庫的編碼方式都是一樣的,但是原因到底是怎麼回事,為什麼一直不行,我就在資料庫下面查詢了各個編碼方式如下:

發現確實資料的編碼方式為utf8

把character_set_connection設為utf8編碼發現還是不行

然後發現character_set_client和character_set_results編碼方式都為latin1,接下來,我直接把兩個的編碼方式都設為gbk

再次執行java程式碼,然後在資料庫中檢視

發現插入資料的內容正常了,但是之前插入的資料內容的就出現亂碼,畢竟上面插入內容的時候編碼方式和現在不一樣,所以問題到此就結束啦~~~~~~~~~~

注意:設定變數只對當前連線有效,當退出視窗後,再次登入mysql,還需要再次設定變數。

:以前2個來確定,可以使用set names utf8,set names gbk

設定預設的編碼格式;
執行SET NAMES utf8的效果等同於同時設定如下:
SET character_set_client='utf8';
SET character_set_connection='utf8';
SET character_set_results='utf8';

指定預設編碼(一勞永逸解決辦法)
  在my.ini(MySQL安裝目錄裡)中設定character-set-server=utf8即可,它可以修改三個變數:client、results、connection。