美文网首页
encodeURIComponent或者encodeURI 不用

encodeURIComponent或者encodeURI 不用

作者: 吃鱼的小肥羊 | 来源:发表于2017-09-20 10:30 被阅读0次

    测试

    1. 客户端:qq浏览器、firfox、chrome

    2. 测试用例

        (1) url中path带汉字

        (2)url中query带汉字

        (3)页面中get请求或者post请求

        (4)页面中meta元数据 charset="utf-8" 或者 charset="gb2312"

    调研结果(ps: 比较片面,受浏览器种类和版本影响,结果可能不同,结果不代表绝对性,只是利用有效条件)

    qq浏览器行为和chrome行为一致,会对中文进行编码,firfox不会

    encodeURI和encodeURIComponent的重要性

    因为各个浏览器的行为不一致,所以给开发人员带来困惑,需要一种通用的方法来避免掉多种适配的麻烦。所以encdoeURI和encodeURIComponent这两个标准就出现了,encodeURI现在已经用的少了,基本都用encodeURIComponent

    encodeURI vs encodeURIComponent

    不同点

    encodeURI: 除掉特定字符不编码外(包括浏览器访问url里面的预留符号和其

    他得一些符号), 这些不编码的符号是: A-Z a-z 0-9 ; , / ? : @ & = + $ - _ . ! ~ * ' ( ),其他字符都要编码

    encodeURIComponent: 除特定字符编码外,其他字符都编

    码(包括浏览器url里面的预留字符),这些不编码的符号是:A-Z a-z 0-9 - _ . ! ~ * ' ( )

    相同点

    都是采用的utf-8编码

    例子

    var test = 'http://www.test.com/例子'

    encodeURI(test) 

    # "http://www.test.com/%E4%BE%8B%E5%AD%90"

    encodeURIComponent(test) 

    # "http%3A%2F%2Fwww.test.com%2F%E4%BE%8B%E5%AD%90"

    相关文章

      网友评论

          本文标题:encodeURIComponent或者encodeURI 不用

          本文链接:https://www.haomeiwen.com/subject/gabnsxtx.html