spring restTemplate亂碼問題解決

2021-09-27 03:53:16 字數 1610 閱讀 3992

對於亂碼問題網上也是很多方案,有的是直接把返回的string進行轉碼,不過這樣子不具備通用性,比較麻煩,治標不治本,對於另外一種方式其實就是修改resttemplate的bean裡面的convertor轉換器

通常在引入bean的時候會有如下**:

通過以上**可以獲取到resttemplate的例項,通過斷點debug發現以string格式接收資料時,底層採用的是stringhttpmessageconverter來處理請求。檢視resttemplate的構造方法如下:

public resttemplate() 

if (jackson2xmlpresent) else if (jaxb2present)

if (jackson2present) else if (gsonpresent) else if (jsonbpresent)

if (jackson2smilepresent)

if (jackson2cborpresent)

}

通過以上**可以發現對於不同response型別的內容處理器是不一樣的

而其中的stringhttpmessageconverter構造方法使用了預設字符集:iso-8859-1  所以在面對響應格式為string的內容時就會出現亂碼的情況,而在大部分通過json格式互動的系統中並不會出現此問題

,為了制定編碼格式為utf-8 ,網上存在一種方式是在resttemplate的建構函式中,對messageconverters賦值時,在下標為1的位置設定的是stringhttpmessageconverter物件,如下:

通過新增的方法,將resttemplate物件傳遞進去,內部遍歷messageconverters,找到stringhttpmessageconverter並替換為utf-8格式的stringhttpmessageconverter物件即可。

此方法在resttemplate構造的時候執行就好了,如下:

CHM亂碼問題解析

chm亂碼問題解析 經常碰到一些 chm 格式的幫助文件出現亂碼無法閱讀的情況,而且 chm 文件不像瀏覽器一樣,右鍵可以選擇字元編碼,非常不便。究其原因,主要就是 chm 文件在頁面中沒有指定合適的字元編碼所致。chm 的實質是 html 檔案。一般情況下沒有指定字元編碼的 chm 是呼叫 int...

MySql 亂碼問題解決

最近連線mysql資料庫的時候,我也遇到了中文亂碼問題 呵呵,很頭疼哦!我用的資料庫是mysql5.0,所以,我先用google,baidu等上網搜了一下解決方案,自己也按著方法反覆測試了一下午,終於解決了我的jsp mysql5.0 tomcat 5.0.29出現的亂碼問題。解決方案如下 1 在d...

RARASAFE亂碼問題解決

試用ralasafe1.2 遇到中文亂碼問題,網上找了下解決方案,不全,重新做了個整理 1.瀏覽器頁面全部使用utf 8編碼方式,當瀏覽器提交資料到web伺服器時,對提交資料做utf 8編碼 encoding filter.setcharacterencodingfilter encoding ut...