jsp通过url向Action传参出现中文乱码(测试有效)

今天作项目的时候,向action传参时,总是无法解析中文字符,改了tomcat下的server.xml文件也无效,最后用了encodeURI函数,搞定。

jsp页面

jsp通过url向Action传参出现中文乱码(测试有效)_第1张图片

action

jsp通过url向Action传参出现中文乱码(测试有效)_第2张图片


========================================================================================================

jsp: encodeURI(encodeURI(url));
action:java.net.URLDecoder.decode(request.getP..(),"UTF-8");

先在jsp编码,再在action中解码

encodeURI(encodeURI("中文"))编码

URLDecoder.decode(request.getParameter("参数名"),"UTF-8");完成解码。

例如:  url:"qtypenums.action?typeid=&qmobile=&qname="+encodeURI(encodeURI(''))+"&qattr1="+encodeURI(encodeURI(''))+"&qattr2="+encodeURI(encodeURI(''))+"&qattr3="+encodeURI(encodeURI('')),

在action中解码

String qname=this.getQname();
        String qattr1=this.getQattr1()==null?"":this.getQattr1();
        String qattr2=this.getQattr2()==null?"":this.getQattr2();
        String qattr3=this.getQattr3()==null?"":this.getQattr3();
        String qname1="";
        String qattr11="";
        String qattr21="";
        String qattr31="";
        try{
            qname1=URLDecoder.decode(qname,"UTF-8");
            qattr11=URLDecoder.decode(qattr1,"UTF-8");
            qattr21=URLDecoder.decode(qattr2,"UTF-8");
            qattr31=URLDecoder.decode(qattr3,"UTF-8");
        }catch(Exception w){}


=================================================================================================

用过滤器
package com.tarena.filter;
import java.io.IOException;   
  
import javax.servlet.Filter;   
import javax.servlet.FilterChain;   
import javax.servlet.FilterConfig;   
import javax.servlet.ServletException;   
import javax.servlet.ServletRequest;   
import javax.servlet.ServletResponse;   
  
public class CharacterEncodingFilter implements Filter {   
  
    @Override  
    public void destroy() {   
    }   
  
    @Override  
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,ServletException   {   
    request.setCharacterEncoding("utf-8");   
    chain.doFilter(request, response);   
    }   
  
    @Override  
    public void init(FilterConfig arg0) throws ServletException{   
    }   
  
}  
建立一个类
------------------------------------------------fenge -------------------
再在web.xml加上这句话。
   
characterEncoding   
com.tarena.filter.CharacterEncodingFilter   
   
   
characterEncoding   
/*   
  

================================================================================

用过滤器。不屑与用就用  String s=new String(request.getP...(),getBytes("编码"),转换成什么编码如:UTF-8);

jsp: encodeURI(url);
action:java.net.URLDecoder.decode(request.getP..(),"UTF-8");

转码...


你可能感兴趣的:(web开发)