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");/*需要处理异常*/进行一次 解码就好了

  • 相关阅读:
    Unreal Engine 4官网教程
    快速上手制作暗黑类游戏动作打击感的一些要点
    充分利用 UE4 中的噪声
    综合帖:多角度闲聊游戏打击感
    鹅厂内部分享:七步教你从无到有做数值
    二叉树、二叉搜索树、平衡二叉树、B树、B+树的精确定义和区别探究
    MySQL的InnoDB索引原理详解
    分布式核心
    Mysql 原理以及常见mysql 索引等
    redis核心原理
  • 原文地址:https://www.cnblogs.com/shangxiaofei/p/3816467.html
Copyright © 2011-2022 走看看