spring mvc 框架URL接收中文參數的亂碼解決方案

當訪問帶中文參數的url,或者提交get方法到後臺包含中文參數的時候,可能後臺接收到的是亂碼,比如訪問這個地址:

http://www.codingyun.com/tag/框架實例

後臺可能就會出現亂碼,具體解決方案如下:

配置tomcat目錄下的service.xml文件

tomcat7/conf/server.xml

給該行代碼加上 URIEncoding=”UTF-8” 的編碼屬性

<Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" URIEncoding="UTF-8" />

這樣配置後,tomcat接收url請求後就會以utf-8解碼傳遞的中文參數,也就能解決亂碼問題

二、

在controller接收參數時,對參數進行轉碼

@RequestMapping(value="/{tag}")  
public String getArticleListByTag(HttpServletRequest request, @PathVariable String tag, QueryCondition queryCondition) throws Exception{  
    tag = new String(tag.getBytes("ISO-8859-1"), "UTF-8");   
    logger.info("tag: " + tag );
}

這樣的話,後臺接收中文參數後就會將ISO-8859-1的編碼格式轉碼爲UTF-8形式,也能解決亂碼問題。

總結:

其實亂碼問題出現的原因,就是由於默認的tomcat配置,接收請求是以ISO-8859-1來轉碼,導致中文出現了亂碼問題,只要能正確的以utf-8來轉碼,則可以解決亂碼問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章