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

  • 相关阅读:
    java基础知识回顾之---java String final类构造方法
    java基础知识回顾之---java String final类普通方法
    递归的理解
    跟着牛人学习
    【轻松学排序算法】眼睛直观感受几种常用排序算法
    《PhotoShop CS6 》第一节 矢量与分辨率
    SQL 查询当天,本月,本周的记录
    SQL创建表脚本
    varchar和Nvarchar区别
    [C#] 我的log4net使用手册
  • 原文地址:https://www.cnblogs.com/shangxiaofei/p/3816467.html
Copyright © 2011-2022 走看看