springboot亂碼問題排查思路解析
引言
我們?cè)谑褂胹pringboot項(xiàng)目開發(fā)過程中,會(huì)遇到中文保存到數(shù)據(jù)庫(kù)后出現(xiàn)亂碼的問題,這里以mysql為例介紹幾個(gè)排查思路
1. mysql的數(shù)據(jù)庫(kù)表的字符編碼格式不是utf-8導(dǎo)致
可以通過以下的語句來查看數(shù)據(jù)庫(kù)表的創(chuàng)建語句
show?create?table?tableName;
如果不是UTF-8的,修改表的默認(rèn)字符集和所有列的字符集語句
ALTER?TABLE?table_name?CONVERT?TO?CHARACTER?SET?UTF-8
2. 服務(wù)器端編碼格式錯(cuò)誤,導(dǎo)致存到mysql也是亂碼
這個(gè)可以通過debug的模式來斷點(diǎn)執(zhí)行,查看在服務(wù)端保存前收到的參數(shù)值是否是亂碼,如果在服務(wù)端收到的就是亂碼,那要檢查下前端傳入的字符是否有轉(zhuǎn)成utf-8
3. mysql配置不正確,導(dǎo)致亂碼
這個(gè)問題是最常遇到的,經(jīng)常發(fā)現(xiàn)有同學(xué)忘記了這塊的配置,就是在spring.datasource.url的配置中少了 &useUnicode=true&characterEncoding=utf8 的配置
spring.datasource.url = jdbc:mysql://localhost:3306/blog_system?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf8
4. 讀取配置文件的變量時(shí),中文顯示為亂碼
如有一個(gè)test.properties的文件,設(shè)置了相應(yīng)的變量值
tom.age?=?${random.int[10,20]} tom.description?=?tom的年齡可能是這個(gè)數(shù)據(jù):?${tom.age}
在程序中讀取變量description時(shí),會(huì)顯示中文亂碼
??@Value("${tom.description}") ??private?String?description;
這時(shí)候就需要在配置引用配置文件時(shí),添加encoding="UTF-8"
@PropertySource(value?=?"classpath:test.properties",encoding?=?"UTF-8")
以上就是springboot亂碼問題排查思路解析的詳細(xì)內(nèi)容,更多關(guān)于springboot亂碼排查的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
java 中cookie的詳解及簡(jiǎn)單實(shí)例
這篇文章主要介紹了java 中cookie的詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,這里對(duì)cookie 的建立與讀取,和設(shè)定cookie 生命周期等詳細(xì)介紹,需要的朋友可以參考下2017-01-01使用IDEA創(chuàng)建servlet?JavaWeb?應(yīng)用及使用Tomcat本地部署的實(shí)現(xiàn)
本文主要介紹了使用IDEA創(chuàng)建servlet?JavaWeb?應(yīng)用及使用Tomcat本地部署2022-01-01java數(shù)組算法例題代碼詳解(冒泡排序,選擇排序,找最大值、最小值,添加、刪除元素等)
這篇文章主要介紹了java數(shù)組算法例題代碼詳解(冒泡排序,選擇排序,找最大值、最小值,添加、刪除元素等),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05java實(shí)現(xiàn)上傳網(wǎng)絡(luò)圖片到微信臨時(shí)素材
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)上傳網(wǎng)絡(luò)圖片到微信臨時(shí)素材,網(wǎng)絡(luò)圖片上傳到微信服務(wù)器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07Java Socket實(shí)現(xiàn)UDP編程淺析
類 DatagramSocket 何 DatagramPacket(數(shù)據(jù)包/數(shù)據(jù)報(bào)) 實(shí)現(xiàn)了基于 UDP協(xié)議網(wǎng)絡(luò)程序;UDP數(shù)據(jù)報(bào)通過數(shù)據(jù)報(bào)套接字 DatagramSocket 發(fā)送和接收,系統(tǒng)不保證 UDP數(shù)據(jù)報(bào)一定能夠安全送達(dá)目的地,也不確定什么時(shí)候可以抵達(dá)2022-11-11Java中@DateTimeFormat和@JsonFormat注解介紹
@DateTimeFormat和@JsonFormat都是處理時(shí)間格式化問題的,把其他類型轉(zhuǎn)換成自己需要的時(shí)間類型,下面這篇文章主要給大家介紹了關(guān)于Java中@DateTimeFormat和@JsonFormat注解介紹的相關(guān)資料,需要的朋友可以參考下2022-11-11sentinel?整合spring?cloud限流的過程解析
這篇文章主要介紹了sentinel?整合spring?cloud限流,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03Spring Boot JDBC 連接數(shù)據(jù)庫(kù)示例
本篇文章主要介紹了Spring Boot JDBC 連接數(shù)據(jù)庫(kù)示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02java編程實(shí)現(xiàn)求質(zhì)數(shù)與因式分解代碼分享
這篇文章主要介紹了Java編程實(shí)現(xiàn)求質(zhì)數(shù)與因式分解代碼分享,對(duì)二者的概念作了簡(jiǎn)單介紹(多此一舉,哈哈),都是小學(xué)數(shù)學(xué)老師的任務(wù),然后分享了求解質(zhì)數(shù)和因式分解的Java代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12MyBatisPlus 一對(duì)多、多對(duì)一、多對(duì)多的完美解決方案
這篇文章主要介紹了MyBatisPlus 一對(duì)多、多對(duì)一、多對(duì)多的完美解決方案,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11