日期:2014-05-18  浏览次数:20624 次

jsp页面传递中文参数
<a   href= "detail.jsp?yf= <%=yf[i]%> &bmmc= <%=bmmc%> "   target= "_blank ">
原以为简单
可是。。。传递过去后
由于页面编码设置的是UTF-8
所以对中文参数bmmc加了转换df.toGb   作用是从ISO-8859-1 "转到 "UTF-8 ";
每次URL中显示的都是正确的
比如:detail.jsp?yf=06&bmmc=财务处
一到String   yf=(String)request.getParameter( "yf ");String   bmmc=df.toGb(request.getParameter( "bmmc "));
就出现bmmc成了部分乱码,总是最后一个字是乱码
真是头都想破了哦
请各位高手指教


------解决方案--------------------
给你段转换代码.
<%! String trans(String chi)
{
String result = " ";
byte temp [];
try
{
temp=chi.getBytes( "iso-8859-1 ");
result = new String(temp);
}
catch(UnsupportedEncodingException e)
{
System.out.println (e.toString());
}
return result;
}
%>
那里是乱码,就在哪里trans(这里放是乱吗的变量)就ok了,以后在遇到类似的问题,直接把这个拷上去就ok了,方便,快捷.... 就要升级了,我要分!!!!!!!!!!!!!!
------解决方案--------------------
实现Filter接口,改写doFilter方法
public void doFilter(ServletRequest servletrequest, ServletResponse servletresponse, FilterChain filterchain)
throws IOException, ServletException{

servletrequest.setCharacterEncoding( "GB2312 ");
filterchain.doFilter(servletrequest, servletresponse);

}
在web.xml中
<filter>
<filter-name> EncodingFilter </filter-name>
<filter-class> com.xzh.docsys.util.EncodingFilter </filter-class>
</filter>
<filter-mapping>
<filter-name> EncodingFilter </filter-name>
<servlet-name> action </servlet-name> //这个action是ActionServlet的名字
</filter-mapping>