主要用于将字符串以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("工具网")
主要对字符串进行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")
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
在为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 之前把属性参数值中的 ?%& 等符号分别替换成相应的编码。