• URL编码规则


    将空格转换为加号(+)
    对0-9,a-z,A-Z之间的字符保持不变
    对于所有其他的字符,用这个字符的当前字符集编码在内存中的十六进制格式表示,并在每个字节前加上一个百分号(%)。如字符“+”用%2B表示,字符“=”用%3D表示,字符“&”用%26表示,每个中文字符在内存中占两个字节,字符“中”用%D6%D0表示,字符“国”用%B9%FA表示调对于空格也可以直接使用其十六进制编码方式,即用%20表示,而不是将它转换成加号(+)
    说明:
    如果确信URL串的特殊字符没有引起使用上的岐义或冲突你也可以对这些字符不进行编码,而是直接传递给服务器。例如,http://www.it315.org/dealregister.html?name=中国&password=123
    如果URL串中的特殊字符可能会产生岐义或冲突,则必须对这些特殊字符进行URL编码。例如,服务器会将不编码的“中+国”当作“中国”处理。还例如,当name参数值为“中&国”时,如果不对其中的“&”编码,URL字符串将有如下形式:http://www.it315.org/dealregister.html?name=中&国&password=123,应编码为:http://www.it315.org/dealregister.html?name=中%26国&password=123
    http://www.it315.org/example/index.html#section2可改写成http://www.it315.org/example%2Findex.html%23section2

    escapeSymbol = function(source) {

    //TODO: 之前使用\s来匹配任意空白符
    //发现在ie下无法匹配中文全角空格和纵向指标符\v,所以改\s为\f\r\n\t\v以及中文全角空格和英文空格
    //但是由于ie本身不支持纵向指标符\v,故去掉对其的匹配,保证各浏览器下效果一致
    return String(source).replace(/[#%&+=\/\\\ \ \f\r\n\t]/g, function(all) {
    return '%' + (0x100 + all.charCodeAt()).toString(16).substring(1).toUpperCase();
    });
    };

  • 相关阅读:
    Java中,&&与&,||与|的区别
    Hibernate中的merge方法 以及对象的几中状态
    你希望函数的某些参数强制使用关键字参数传递:
    7.1 可接受任意数量参数的函数:
    perl urlencode
    python UnicodeDecodeError: 'utf8' codec can't decode byte 0xd6 in position 15: invalid continuation
    python 使用__slots__
    python 面向对象编程
    Python flask post接口
    python flask get传参
  • 原文地址:https://www.cnblogs.com/xiaohui108/p/3049136.html
Copyright © 2020-2023  润新知