SpringMVC返回的ResponseEntity出現(xiàn)亂碼及解決
返回ResponseEntity亂碼
問題
前臺通過數(shù)據(jù)到后臺查詢相關(guān)數(shù)據(jù),結(jié)果是后臺返回的數(shù)據(jù)出現(xiàn)中文出現(xiàn)亂碼,如下圖所示
原因
對于String類型,在沒有在代碼中明確指定編碼類型的情況下,可能后臺對傳輸?shù)臄?shù)據(jù)沒有正確編碼(本人的猜測,時間有限,后面有時間會跟下源碼和看看文檔,發(fā)現(xiàn)真正的原因)
解決
將String類型改為用戶自定義的Pojo,如User等,或者改為List這些比較高級一點的數(shù)據(jù)類型。然后通過@ResponseBody進行序列化,中文亂碼問題解決,如下圖所示。
ResponseEntity下載文件名中文亂碼
SpringBoot下載文件,文件名帶了中文出現(xiàn)亂碼
代碼如下:
return ResponseEntity.ok() .header("Content-disposition", "attachment;filename=" + fileName) .contentLength(file.length()) .contentType(MediaType.parseMediaType("application/octet-stream")) .body(resource);
解決辦法
給文件名進行編碼:
fileName = new String(fileName.getBytes("UTF-8"),"ISO-8859-1");
問題解決
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- 解決springboot responseentity<string>亂碼問題
- 使用ResponseEntity作為的返回值的應(yīng)用
- 常用的ResponseEntity.BodyBuilder和自定義ResponseEntity的實例
- springmvc @ResponseStatus和ResponseEntity的使用
- SpringMVC使用ResponseEntity實現(xiàn)文件上傳下載
- 使用spring框架ResponseEntity實現(xiàn)文件下載
- 如何使用spring ResponseEntity處理http響應(yīng)
- 使用ResponseEntity處理API返回問題
相關(guān)文章
springboot+mybatis攔截器方法實現(xiàn)水平分表操作
這篇文章主要介紹了springboot+mybatis攔截器方法實現(xiàn)水平分表操作,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下2022-08-08jdk-logging?log4j?logback日志系統(tǒng)實現(xiàn)機制原理介紹
這篇文章主要介紹了jdk-logging、log4j、logback日志介紹以及三個日志系統(tǒng)的實現(xiàn)機制,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-03-03SpringBoot使用@Cacheable時設(shè)置部分緩存的過期時間方式
這篇文章主要介紹了SpringBoot使用@Cacheable時設(shè)置部分緩存的過期時間方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12關(guān)于注解式的分布式Elasticsearch的封裝案例
這篇文章主要介紹了關(guān)于注解式的分布式Elasticsearch的封裝案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01一篇文章掌握J(rèn)ava?Thread的類及其常見方法
Thread類用于操作線程,是所以涉及到線程操作(如并發(fā))的基礎(chǔ)。本文將通過代碼對Thread類的功能作用及其常見方法進行分析2022-03-03