1. 程式人生 > >前端/postman請求到後臺,後臺取資料中文亂碼,導致存入資料庫記錄亂碼——解決辦法

前端/postman請求到後臺,後臺取資料中文亂碼,導致存入資料庫記錄亂碼——解決辦法

操作

我們從前端獲取資料後存入資料庫,此處使用postman模擬從前端傳值到後臺,具體如下:
傳入的引數

引出的問題:

記錄新增成功,但新新增的記錄中文出現亂碼,具體如下:
資料庫所存的記錄中文出現亂碼
很明顯,這不符合我們所想要的效果,那麼如何解決這個問題呢?

解決步驟

1、找出問題所在

Step1:排查資料庫字元編碼

  • 選擇所在的資料庫, ->右鍵 ->資料庫屬性 確認資料庫的字元編碼為utf-8。

檢視資料庫屬性 資料庫字元編碼

  • 檢視資料庫表的字元編碼,選中資料庫表->右鍵->物件資訊 , 確認資料庫表的字元編碼為utf-8
    檢視資料庫表物件資訊 資料庫表物件資訊

Step2:當我們排查了資料庫都沒有問題之後,下一步我們來進行除錯下後臺程式哪裡出了問題。啟動伺服器,開啟debug模式。

問題出現了~ 可以看到,在request獲取引數的時候就已經亂碼了,所以存進資料庫的值也是亂碼的~
問題

2、解決問題

我們去檢視tomcat伺服器的server.xml配置檔案。
server.xml

發現裡面並沒有設定字元編碼

<Connector connectionTimeout="20000" port="8088" protocol="HTTP/1.1" redirectPort="8443"/>

所以,我們嘗試下在這 Connector 標籤裡面新增 URIEncoding 屬性

<Connector URIEncoding="UTF-8" connectionTimeout
="20000" port="8088" protocol="HTTP/1.1" redirectPort="8443"/>

此時我們重啟伺服器,再次使用debug模式來除錯下我們的程式,發現成功獲取到中文~
debug成功

此時我們檢視資料庫所存的記錄,存值正常~完美解決~
資料庫存值成功~