zoukankan      html  css  js  c++  java
  • window.location.herf=url参数有中文,到后台乱码问题解决

    js中的代码:

      /*将中文的参数进行两次编码 */

      function queryByName(){
                        //获取查询条件的用户名
                        var queryName=$("#queryName").val();//尚晓飞当当
                        alert(queryName);
                        //进行后台跳转
                        window.location.href="<%=request.getContextPath() %>/master/sysUser_queryByName.action?queryName="+encodeURI(encodeURI(queryName));
                        
                    }

    java后台的代码:

      public String queryByName() throws UnsupportedEncodingException{
            
            System.out.println("SysUserAction.queryByName()"+queryName);
            //这里用struts2中设定queryName属性接收前台传来的参数,然后将该接收参数,进行解码
            String name = java.net.URLDecoder.decode(queryName,"UTF-8");//需要抛异常
            System.out.println("SysUserAction.queryByName()"+name);
            this.list=sysUserService.querySysUserByName(name);
            
            return "userList";
        }

    控制台打印结果:

    SysUserAction.queryByName()%E5%B0%9A%E6%99%93%E9%A3%9E%E5%BD%93%E5%BD%93
    SysUserAction.queryByName()尚晓飞当当

    原因:后来网搜资料,发现原来在对后台java程序里的queryName赋值的时候,本身已经使用了一次解码,不过解码的结果依然不对。所以我们可以在页面 上进行两次编码操作,这样后台自动的那次就可以抵消掉一次,然后在使用 searchtext=java.net.URLDecoder.decode(queryName,"UTF-8");/*需要处理异常*/进行一次 解码就好了

  • 相关阅读:
    python 协程
    python中基于descriptor的一些概念
    python remove del pop 的区别
    python 装饰器 和面向切面编程(AOP)
    python yield详解
    Python的列表推导式,字典推导式,集合推导式使用方法
    python 垃圾回收机制
    (5) etcd 介绍、经典适用场景、安装、配置、测试
    grafana 安装配置
    open-falcon 安装配置
  • 原文地址:https://www.cnblogs.com/shangxiaofei/p/3816467.html
Copyright © 2011-2022 走看看