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

  • 相关阅读:
    【JQuery】JQuery属性
    C语言封装的环形队列
    C语言封装的栈结构
    再谈C语言宏定义
    url编码与解码(C语言)
    鼠标钩子安装,实现获取鼠标的全局点击位置
    分享一个MFC的内存DC封装类
    MDK5.30中出现警告 xxx.c(x): warning: no previous extern declaration for non-static variable 'in' [-Wmissing-variable-declarations]
    MFC中加载位图
    分享一个自己封装的WIN SOCKET类
  • 原文地址:https://www.cnblogs.com/shangxiaofei/p/3816467.html
Copyright © 2011-2022 走看看