zoukankan      html  css  js  c++  java
  • 表单序列化及编码问题

    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尼克。我们一起学习计算机相关知识

  • 相关阅读:
    蛋疼的springboot web项目使用jetty容器运行
    freemark 异常
    系统中个别页面间断性跳转到登录页异常
    Spring Transaction 使用入门
    单例模式
    抽象工厂模式
    工厂模式
    设计模式
    关于ZK框架的onScroll事件的问题
    关于CheckStyle在eclipse出现的问题
  • 原文地址:https://www.cnblogs.com/shueixue/p/5750501.html
Copyright © 2011-2022 走看看