UrlEncode编码/UrlDecode解码

UrlEncode编码

        主要用于将字符串以URL编码,返回一个字符串。
        使用方法:
1、ASP中的用法:Server.URLEncode(“内容”) 例如:   

   <% response.write Server.UrlEncode("工具网") %>

2、PHP中的用法:urlencode(“内容”) 例如:

   <?  echo urlencode("工具网")?>

3、JSP中的用法:URLEncoder.encode(“内容”) 例如:

   <% java.net.URLEncoder.encode("工具网");  %>

4、javascript中的用法:encodeURI(“内容”) 例如:

   encodeURI("工具网");

5、Python中的用法:

   import urllib2
   urllib2.quote("工具网")
UrlDecode解码

        主要对字符串进行URL解码,返回已解码的字符串
1、ASP中的用法:Server.UrlDecode(“内容”) 例如:   

   <% response.write Server.UrlDecode("%E5%B7%A5%E5%85%B7%E7%BD%91") %>

2、PHP中的用法:urldecode(“内容”) 例如:

   <? echo urldecode("%E5%B7%A5%E5%85%B7%E7%BD%91")?>

3、JSP中的用法:URLDecoder.decode(“内容”) 例如:

   <% java.net.URLDecoder.decode("%E5%B7%A5%E5%85%B7%E7%BD%91"); %>

4、javascript中的用法 例如:

   decodeURI("%E5%B7%A5%E5%85%B7%E7%BD%91");

5、Python中的用法 例如:

   import urllib2
   urllib2.unquote("%E5%B7%A5%E5%85%B7%E7%BD%91")
Gb2312及Gb2312转Utf-8编码的UrlEncode编码解码

Unicode 与 Utf-8码间的内码规则模板为:

    原始码(16进制) UTF-8编码(二进制)
    --------------------------------------------
    0000 - 007F       0xxxxxxx 
    0080 - 07FF       110xxxxx 10xxxxxx 
    0800 - FFFF       1110xxxx 10xxxxxx 10xxxxxx   (中文字在此区间)
    ……
    --------------------------------------------

例如:
        百度中查询“中国人”,会将中文URL参数转为Gb2312码的16进制表示,一个中文字用2个字节
http://www.baidu.com/s?wd=%D6%D0%B9%FA%C8%CB
        Google中查询“中国人”,会将中文URL参数转为Utf-8编码的16进制表示,一个中文字用3个字节
http://www.google.cn/search?client=opera&rls=en&q=%E4%B8%AD%E5%9B%BD%E4%BA%BA&sourceid=opera&ie=utf-8&oe=utf-8

Objective-C 对 URL 进行 URLEncode 编码

        在为Apple的IPhone、ipad等设备开发iOS app应用程序访问 HTTP 资源时需要对 URL 进行 Encode,比如像拼出来的 http://www.baidu.com/s?wd=中国人,其中的中国人、        特殊符号&%和空格都必须进行转译才能正确访问。
        在 Java、.net 和 JS 中都有相应的 encodeURL 方法可用,在 Objective-C 语言中,你可以试下    

   - (NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)enc;  

来对完整的 URL(带请求参数的)进行编码,比如执行下面的代码:

   NSString *url=@"http://www.baidu.com/s?wd=中国人";
   NSString *encodedValue = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

上面代码转换出的 encodedValue 是:

    http://www.baidu.com/s?wd=%D6%D0%B9%FA%C8%CB

可见,它不会转换 URL 中的 ?%& 符号,这也正常,因为它肯定分不出哪个 & 是参数的连接符号还是参数值,你可以单独编码参数,然后在拼接成 URL 之前把属性参数值中的 ?%& 等符号分别替换成相应的编码。

你可能感兴趣的:(UrlEncode编码/UrlDecode解码)