URL编码

作者: 07120665a058 | 来源:发表于2017-08-12 10:22 被阅读28次

    URL为什么要编码

    • 在传输过程中,URL中有些字符会引起歧义,比如以下两种情况
    • URL查询字符的一般格式为key=value&key=value,那么如果value字符串中包含了=,&,那么就会造成解析错误
    • 或者URL的编码格式采用的是ASCII码,而你又在其中输入了中文,也可能会造成解析错误
    • 所以URL编码就是使用安全的字符去表示那些不安全的字符

    JS中的3个编码函数详解

    escape()

    • escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值
    • 不编码的符号有,ASCII字母、数字、标点符号"@ * _ + - . /"(*/@+-._0-9a-zA-Z
    • \u0000到\u00ff之间的符号被转成%xx的形式,其余符号被转成%uxxxx的形式
    • 对应的解码函数是unescape()

    encodeURI()

    • encodeURI()是JS中用来对URL编码的函数,对常见符号进行编码
    • 不编码的符号是,一些在网址中有特殊含义的符号!#$&'()*+,/:;=?@-._~0-9a-zA-Z
    • 编码后,它输出符号的utf-8形式,并且在每个字节前加上%
    • 对应的解码函数是decodeURI()

    encodeURIComponent()

    • encodeURIComponent():它用于对URL的组成部分进行个别编码,而不用于对整个URL进行编码
    • 因此在encodeURI()中不被编码的符号,在encodeURIComponent()中统统会被编码
    • 不编码的符号有,!'()*-._~0-9a-zA-Z
    • 对应的解码函数是decodeURIComponent()

    相关文章

      网友评论

          本文标题:URL编码

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