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

  • 相关阅读:
    Eclipse下,修改MAVEN 中央仓库地址,解决maven下载慢问题
    C语言中头文件string的用法
    Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
    Curl
    LDAP是什么
    Linux网络基本网络配置
    vim
    request,session,cookie的比较
    J2EE开发过程中遇到的问题
    实现弹出登录窗口
  • 原文地址:https://www.cnblogs.com/springlight/p/5624721.html
Copyright © 2011-2022 走看看