MySQL插入中文數據出現?號,解決辦法

運行環境:win10
mysql版本:Mysql5.6
做一個項目的時候,向數據庫插入中文數據,一直都是?
問過度娘之後,她提供的以下辦法:
1.在連接數據庫的url後加:?useUnicode=true&characterEncoding=UTF-8
比如:

url = "jdbc:mysql://localhost:3306/login?useUnicode=true&characterEncoding=UTF-8";

2.檢查servlet頁面編碼

response.setContentType("text/html;charset=utf-8");
        request.setCharacterEncoding("utf-8");

3.檢查JSP頁面編碼。
4.查看數據庫屬性
這裏寫圖片描述
在這些全部都嘗試過,還是?,最後找到了使用命令查看字符編碼
1.點擊windows圖標,找到mysql,選擇“Mysql5.6 command line Client”
打開之後輸入數據庫密碼,
2.使用命令:use 數據庫名(比如:use login)
3.輸入命令:show variables like ‘%char%’; (查看數據庫編碼)
這裏寫圖片描述
果然有一項不對,雖然命令行修改很容易,只需要兩行代碼

set character_set_database=utf8;  
set character_set_server=utf8; 

但是,在重啓數據庫服務之後,這些設置又會恢復到默認latin1.
怎樣讓他們永久變爲utf-8呢,搜了很久,終於找到了
解決方法:在mysql的配置文件my.ini寫下character-set-server=utf8就好了
但是免安裝版的my.ini在哪?
免安裝mysql的目錄下只有一個my-default.ini,而且打開也沒有character-set-server
不急,先把它拷貝一份,並重命名爲my.ini,這樣該目錄下就有了my.ini和my-default.ini兩個ini文件
然後打開my.ini加上以下幾行代碼

[client]  
default-character-set=utf8  
[mysqld]  
character-set-server=utf8 

具體位置如下:
這裏寫圖片描述
這個時候再重新啓動mysql的服務,就會發現編碼就不會回覆默認了
這裏寫圖片描述
最後,附上數據庫服務啓動和關閉的地方:
1.win+R
2.輸入:services.msc,回車
3.就能找到mysql服務啦!

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