URLEncode

作者: guideEmotion | 来源:发表于2019-06-23 16:28 被阅读0次

    转换规则

    urlencode:返回字符串,此字符串中除了-_.之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+
    按照每个字符对应的字符编码,不是符合我们范围的,统统的转化为%的形式也就是了。自然也是16进制的形式。

    那哪些字符是需要转化的呢?

    1. ASCII 的控制字符

    这些字符都是不可打印的,自然需要进行转化。

    1. 一些非ASCII字符

    这些字符自然是非法的字符范围。转化也是理所当然的了。

    1. 一些保留字符

    很明显最常见的就是“&”了,这个如果出现在url中了,那你认为是url中的一个字符呢,还是特殊的参数分割用的呢?

    1. 就是一些不安全的字符了。
      例如:空格。为了防止引起歧义,需要被转化为“+”。

    和编码无关

    通过urlencode的转化规则和目的,我们也很容易的看出,urleocode是基于字符编码的。同样的一个汉字,不同的编码类型,肯定对应不同的urleocode的串。gbk编码的有gbk的encode结果。

    apache等服务器,接受到字符串后,可以进行decode,但是还是无法解决编码的问题。编码问题,还是需要靠约定或者字符编码的判断解决。

    因此,urleocode只是为了url中一些非ascii字符,可以正确无误的被传输,至于使用哪种编码,就不是eocode所关心和解决的问题了。

    编码问题,不是urlencode所要解决的。

    比如


    image.png
    image.png

    结论

    对于要转换的字符,是先根据编码格式转成对应的字节,然后转成16进制

    参考

    1. https://blog.csdn.net/u013833031/article/details/78828539

    相关文章

      网友评论

          本文标题:URLEncode

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