解決Get方式的中文參數的亂碼問題:
方式1:
前提是Tomcat是默認的配置:java
key = new String(key.getBytes("iso8859-1"), "utf-8");
方式2:
在Tomcat的server.xml中設置:編碼
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8" (這是重點,表示獲取參數解碼時默認使用的編碼類型) />
方式3:(推薦)
1.在頁面中進行兩次URL編碼:spa
param = encodeURI(param);
param = encodeURI(param);
經過URL傳值到服務端。
2.在Action中再進行一次URL解碼(由於在req.getParameter(..)時已經作過一次URL解碼了).net
String param = URLDecoder.decode(req.getParameter(param));
struts標籤解決亂碼問題:code
在struts標籤中這樣寫,就能夠進行兩次URL編碼了,前提是在struts.xml中要設置一下:
<!-- 設置爲在OGNL中能夠調用靜態方法 -->
<constant name="struts.ognl.allowStaticMethodAccess" value="true" />server
<s:a action="processDefinitionAction_delete" onclick="return delConfirm()"> <s:param name="key" value="%{@java.net.URLEncoder@encode(key, 'utf-8')}"></s:param> 刪除 </s:a>