zoukankan      html  css  js  c++  java
  • URL编码,空格和+

    下表中列出了一些URL特殊符号及编码 

    + URL 中+号表示空格 %2B
    空格 URL中的空格可以用+号或者编码 %20
    / 分隔目录和子目录 %2F
    ? 分隔实际的URL和参数 %3F
    % 指定特殊字符 %25
    # 表示书签 %23
    & URL 中指定的参数间的分隔符 %26
    = URL 中指定参数的值 %3D

    很容易理解字符/ ? % # & =是url的保留字符,/是地址分隔符,?后面接参数串,#表示书签,&参数间分隔符,=指定参数值,
    如果参数值,参数名或者地址里面里有上述字符需要转义,形式是%+十六进制数字的形式,所以%也是保留字符。

    空格其实可以不用作为保留字符的,但是各种原因吧,可能为了以后考虑,也要作为保留字符,参数里有空格的话需要转义,转移值是%20,
    麻烦就在于application/x-www-form-urlencoded可以把空格转移成+,那么如果参数值里确实含有+怎么办?所以+也要作为保留字符。

    如果空格和其他保留字符一样都转义成%XX的型式就没多那么多歧义了。

    URLEncoder.encode会把空格转成+,有些人再做一次replaceAll(“\+”, “%20″),将空格强制转成%20。

    /?#&= ----> %XX,
    %----->%XX,
    space---->+或者%20
    +------>%XX

    参考:

    https://blog.csdn.net/oqqquzi1234567/article/details/43409737

    https://blog.csdn.net/foxpeter/article/details/23475293

    https://zh.wikipedia.org/wiki/%E7%99%BE%E5%88%86%E5%8F%B7%E7%BC%96%E7%A0%81

    http://reason2003.iteye.com/blog/719682

  • 相关阅读:
    限制结果集行数
    函数的差异
    运算符的差异
    数据类型的差异
    简介
    Spring源码阅读入门指引
    Spring的三种注入方式
    AOP面向切面编程
    leetcode771
    leetcode669
  • 原文地址:https://www.cnblogs.com/dirichlet/p/9430452.html
Copyright © 2011-2022 走看看