Java將頁面中的資料存到MySQL資料庫中,漢字變成問號

只認暴走發表於2020-12-16

  今天在寫一個springboot專案的時候,在把頁面上input中的值存到資料庫中的時候,發現資料庫表中,存放漢字的欄位都變成了問號。
  我一開始從資料庫進行排查,資料庫的編碼格式沒問題。
在這裡插入圖片描述
  然後發現MySQL的一些編碼格式有問題。

//在dos中輸入以下指令查詢編碼格式
show variables like 'char%';

在這裡插入圖片描述
  然後我在MySQL資料夾下找到my-default.ini,改成my.ini,位置不變(我的MySQL是5.6版本)
在這裡插入圖片描述
  新增以下內容

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

  [mysqld]這個預設應該都有,其他兩個加上就行。
在這裡插入圖片描述

  更改完儲存退出,之後重啟MySQL服務。
在這裡插入圖片描述
  再次登入檢視MySQL編碼格式。
在這裡插入圖片描述
  發現database和server沒有變化,明明在my.ini中都改了。之後從網上得知需要把MySQL升級到8,才能進行修改,於是MySQL編碼格式這裡暫時先不進行下去了。(其實我感覺問題不是出在了這裡)
  之後我檢視我的eclipse的編碼格式
在這裡插入圖片描述
  也沒有問題,當前頁面的編碼格式也為UTF-8
在這裡插入圖片描述
  正當我一籌莫展的時候,突然發現application.yml中資料庫連線那裡的url缺少了編碼配置,在url的後面拼接以下程式碼

?useUnicode=true&characterEncoding=UTF-8

在這裡插入圖片描述

  之後我再次進行插入資料操作,資料庫中的值就能正確顯示了。
  以上就是我這次開發期間遇到的一個問題,編碼的問題可能出在很多地方,我這次的經歷希望能為你們帶來啟發。

相關文章