• 表单序列化及编码问题


    1、encodeURI(encodeURI(decodeURIComponent($("#subForm").serialize(),true)))

    serialize()方法作用于一个JQuery对象,它能够将DOM元素内容序列化为字符串,用于ajax请求。通过使用serialize()方法,可以提交本页面的所有域,

    用字符串方式时,需要注意对字符编码(中文问题),如果不希望编码带来麻烦,可以使用serialize()方法,它会自动编码。

      

    javascript使用encodeURIComponent编码一次,如果是作为Url请求发送,浏览器是自动会作一次解码,
    编码方式为浏览器默认。这样在一次编码后,请求到后台后,比如中文就成为乱码了。
    中间即使编码方式是一致也会乱码。解决方法是在前台javascript使用encodeURIComponentg两次,
    这样浏览器解码一次后,还是一种编码后的字符,传递到后台就不会是乱码,当然你得在后台做一次解码工作。

      

    2、decodeURI()和decodeURIComponent()函数的区别

    decodeURI() 函数可对 encodeURI() 函数编码过的URI 进行解码,

    decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码

    主要区别是encodeURI()不会对自身属于URI的特殊字符进行编码,比如&,#,?等,encodeURIComponent()会对任何发现的非标准字符进行编码

    eg:

    var test1="http://www.wljcz.com/My first/";  
    var nn=encodeURI(test1);  
    var now=decodeURI(test1);  
    document.write(nn+ "<br />");  
    document.write(now);  
      
    var test1="http://www.wljcz.com/My first/";  
    var bb=encodeURIComponent(test1);  
    var nnow=decodeURIComponent(bb);  
    document.write(bb+ "<br />");  
    document.write(nnow);  
    

      

    其运行结果为:

    http://www.wljcz.com/My%20first/
    http://www.wljcz.com/My first/

    http%3A%2F%2Fwww.wljcz.com%2FMy%20first%2F
    http://www.wljcz.com/My first/

    关注公众号:CS尼克。我们一起学习计算机相关知识

  • 相关阅读:
    WBS分析
    需求分析-NABCD
    电梯演讲--2048小游戏
    Git diff 算法
    2020 北京理工大学889 回忆
    抖音后台开发社招面试
    珍宝阁
    2018 北京理工大学复试上机 回忆版
    2018 北京理工大学889 回忆
    做一个博客
  • 原文地址:https://www.cnblogs.com/shueixue/p/5750501.html
Copyright © 2020-2023  润新知