• 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()方法是前后台通用的;两者在处理字符串的方式是没有区别的;

  • 相关阅读:
    python获取当前路径
    python的StringIO
    python判断两个文件是否相同
    Linux查找文件内容
    python日志syslog运用
    python获取当前运行程序的名字
    python连接Linux命令行
    python预编译函数compile,exec,eval
    python日志模块
    Scala安装教程
  • 原文地址:https://www.cnblogs.com/springlight/p/5624721.html
Copyright © 2020-2023  润新知