對URL進行編碼和設置服務器的編解碼方式

如果URL含有中文而且以GET方式提交,必須同時對URL進行編碼和設置服務器的編解碼方式

1.對URL進行編碼,可以利用JS的window.encodeURIComponent函數
      例如:
  var clientIdOrName = window.document.getElementById("clientIdOrName");
  var clientIdOrNameValue = clientIdOrName.value; // clientIdOrNameValue是中文

  window.self.location="../servlet/FlowCardServlet?command=selectClient&queryStr=" + window.encodeURIComponent(clientIdOrNameValue);
    此例就是把中文按照UTF-8的方式對clientIdOrNameValue進行編碼
   
2.設置服務器的編解碼方式,有兩種方式
     第一種,例如
  String queryStr = new String(request.getParameter("queryStr").getBytes("ISO8859-1"), "UTF-8");
 
    第二種,修改Tomcat的配置文件,此處以tomcat6爲例子,需要修改server.xml文件,如下:
 <Connector port="8080" protocol="HTTP/1.1"
            connectionTimeout="20000"
            redirectPort="8443"
            URIEncoding="UTF-8"/>  

 

如果URL含有中文而且以POST方式提交,同樣必須同時對URL進行編碼和設置服務器的編解碼方式

1.對URL進行編碼同上面

 

2.設置服務器的編解碼方式,request.setCharacterEncoding("UTF-8");

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