當訪問帶中文參數的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來轉碼,則可以解決亂碼問題。