jsp传后台再转前台出现乱码问题

   1.  前台URL地址:

structs1 使用java处理

if (null != data && data.size()>1) {
  titleName = URLEncoder.encode(data.get(1)+"","UTF-8");
}
out.println("<td  align='center'> <a href='"+session.getAttribute("basePath")+"peopleFlowChart.do?method=querySiteDetal&begindate="+begindate+"&enddate="+enddate+"&begintime="+begintime+"&endtime="+endtime+"&deptNo="+deptNo+"&LineNo="+LineNo+"&busNo="+busNo+"&busstop="+data.get(sized)+"&busStopName="+titleName+"' target='_bank'> <img alt=\"\" src=\"../images/selectDetail.gif\"/></a>");

 

    2.  后台

服务器是中文字符集  xp系统

String busStopNameTemp = request.getParameter("busStopName");

busStopName = new String(busStopNameTemp.getBytes("iso-8859-1"),"utf-8");

服务器是英文字符集 linux系统

不做处理

busStopName = request.getParameter("busStopName");

request.setAttribute("subtitle", busStopName );

   3. 另外一个页面使用标签输出

<bean:write name="subtitle"/>

   4. 服务器设置

  1. <Connector port="8080" protocol="HTTP/1.1"   
  2.                connectionTimeout="20000"   
  3.                redirectPort="8443" useBodyEncodingForURI="true" URIEncoding="UTF-8"/>  
  1. <Connector port="8080" protocol="HTTP/1.1"                connectionTimeout="20000"                redirectPort="8443" useBodyEncodingForURI="true" URIEncoding="UTF-8"/>  

    5. js处理

(1)、前台javascript编码+后台jsp解码方式:

前台:

<sccript>

for(i=0;i<_input.length;i++){

   if(_input[i].type=="text"){

    _input[i].value=encodeURI(_input[i].value);

   }

  }

  uploadForm.action="selPerson.jsp";

  uploadForm.submit();

</script>

这里先对表单里的数据进行编码.encodeURL这个方法转出来的编码是UTF-8的.

或者通过链接传递

<a href="selPerson.jsp?param=encodeURI('中文字')">

后台:

<%@ page import="java.net.URLDecoder"%>

URLDecoder.decode(request.getParameter("param").getString(),"UTF-8"));

(2)、前台javascript编码+后台javascript解码方式

前台:

<a href="selPerson.jsp?param=escape('中文字')">

后台:

unescape(param)

你可能感兴趣的:(乱码处理)