這篇文章主要介紹了SpringMVC請求/響應(yīng)亂碼問題解決方案解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
創(chuàng)新互聯(lián)長期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為奉節(jié)企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),奉節(jié)網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
GET請求亂碼原因分析
GET請求參數(shù)是通過請求行中的URL發(fā)送給Web服務(wù)器(Tomcat)的。
Tomcat服務(wù)器會對URL進行編碼操作(此時使用的是Tomcat設(shè)置的字符集,默認是iso8859-1)
到了我們的應(yīng)用程序中的請求參數(shù),已經(jīng)是被Tomcat使用ISO8859-1字符集進行編碼之后的了。
解決方式
方式一
修改tomcat配置文件,指定UTF-8編碼,如下:
方式二
對請求參數(shù)進行重新編碼
String username = new String(request.getParamter("userName").getBytes("ISO8859-1"),"utf-8")
方式三
過濾器+請求裝飾器統(tǒng)一解決請求亂碼
MyRequestWrapper
MyCharacterEncodingFilter
請求亂碼解決之post亂碼問題#
在web.xml中加入:
CharacterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding utf-8 CharacterEncodingFilter /*
響應(yīng)亂碼之post亂碼問題
使用@RequestMapping注解中的produces屬性,指定響應(yīng)體的編碼格式
方式一:方法體上
@RequestMapping(value = "findItem",produces = "application/json;charset=utf8") @ResponseBody public String findItem(Integer id) { return "接收到的請求參數(shù)是:" + id; }
方式二:類上(統(tǒng)一管理編碼格式)
//@Controller //RestController:注解相當于Controller注解和ResponseBody注解的結(jié)合體 @RestController @RequestMapping(value = "item",produces = "application/json;charset=utf8") public class ItemController {}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。