zoukankan      html  css  js  c++  java
  • 关于encodeURI(encodeURI($("#").val())) 解决乱码的问题

      最近在写三期项目的时候,遇到一个问题,就是用js提交参数到后台handler中的时候,用实体类接受的时候因为多个jsp页面命名(name="")相同,导致后台获取的时候出现乱码现象,关于这一现象,通过查询得知可以使用 javaScript endcodeURI()函数解决。在页面上进行两次编码操作,然后在后台再进行一次解码。

      encodeURI() 函数可把字符串作为 URI 进行编码。在js中通过定义name 和 pwd 来获取属性值:

          var name = $("#uname").val();

          var pwd = $("#upwd").val();

      然后通过encodeURI() 函数进行两次转码:

          var uname = encodeURI(encodeURI(name));

          var upwd = encodeURI(encodeURI(pwd));

      再用get方法在地址栏上传参到后台:     

          $.get("user/numLogin?User_UserName="+uname+"&User_UserPassword="+upwd,function(data){
            if(data){
              alert("登录成功!!!");
            }else{
               alert("用户名或密码错误!!!");
            }
          },"json");

      在后台用实体类接受后在进行一次转换,再存进实体类中:  

        @RequestMapping("/numLogin")
        @ResponseBody
        public boolean doNumLogin(UserEntity user, HttpSession session) throws UnsupportedEncodingException{
          String name = user.getUser_UserName();
          user.setUser_UserName(URLDecoder.decode(name,"utf-8"));
          String pwd = user.getUser_UserPassword();
          user.setUser_UserPassword(URLDecoder.decode(pwd,"utf-8"));
          user = userService.login(user);
          session.setAttribute("loginUser", user);
          if (user != null) {
            return true;
          }else {
            return false;
          }
        }

        然后,再后台获得的数据就是正常的中文utf-8字符了。

       说明:

          该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

          该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#

      提示和注释:

          提示:如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。

  • 相关阅读:
    Path Sum
    【转】Python的神奇方法指南
    【转】浅析Python中的struct模块
    【转】Python之系统交互(subprocess)
    【转】Win10下python3和python2多版本同时安装并解决pip共存问题
    【转】python包导入细节
    【转】python 历险记(四)— python 中常用的 json 操作
    【转】python模块导入细节
    【转】python 内置函数总结(大部分)
    【转】MySQL-Select语句高级应用
  • 原文地址:https://www.cnblogs.com/shuaiyongyong/p/6506123.html
Copyright © 2011-2022 走看看