zoukankan      html  css  js  c++  java
  • JS 和 Java 中URL特殊字符编码方式

      前几天遇到url特殊字符编码的问题,在这里整理一下:

      JavaScript

      1.  编码 escape(String)

        其中某些字符被替换成了十六进制的转义序列。

       

       解码 unescape(String)

        该函数的工作原理是这样的:通过找到形式为 %xx 和 %uxxxx 的字符序列(x 表示十六进制的数字),用 Unicode 字符 u00xx 和 uxxxx 替换这样的字符序列进行解码。

        *注释:ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代它。

     

      2. 编码 encodeURI(URIstring)

        返回值:URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。

        *如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。

     

       解码 decodeURI(URIstring)

        返回值:URIstring 的副本,其中的十六进制转义序列将被它们表示的字符替换。

     

      3. 编码 encodeURIComponent(URIstring)

        返回值:URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。

     

       解码 decodeURIComponent(URIstring)

        返回值:URIstring 的副本,其中的十六进制转义序列将被它们表示的字符替换。

     
     

      *encodeURIcomponent() 与 encodeURI() 区别

        encodeURIComponent(URIstring) : 假定其参数是URI一部分(比如协议、主机名、路径或查询字符串),因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号(? # 等)。

        encodeURI(URIstring) : 不会对URI中的分隔符编码,如 ? # 等。

      Java

        编码: Class URLEncoder 

        static String encode(String s);
        static String encode(String s, String enc);//enc 编码方式 推荐使用UTF-8

        解码: Class URLDecoder

        static String decode(String s);
        static String decode(String s, String enc);//enc 编码方式 推荐使用UTF-8

         * Java中的编码解码方式和JS中的encodeURIComponent()/decodeURIComponent()方法是前后台通用的;两者在处理字符串的方式是没有区别的;

  • 相关阅读:
    Account group in ERP and its mapping relationship with CRM partner group
    错误消息Number not in interval XXX when downloading
    错误消息Form of address 0001 not designated for organization
    Algorithm类介绍(core)
    梯度下降与随机梯度下降
    反思
    绘图: matplotlib核心剖析
    ORB
    SIFT
    Harris角点
  • 原文地址:https://www.cnblogs.com/springlight/p/5624721.html
Copyright © 2011-2022 走看看