urlencode
urlencode是一个函式,可将字元串以URL编码,用于编码处理。
URL编码(URL encoding),也称作百分号编码(Percent-encoding), 是特定上下文的统一资源定位符 (URL)的编码机制。
适用于统一资源标识符(URI)的编码,也用于为"application/x-www-form-urlencoded" MIME準备数据, 因为它用于通过HTTP的请求操作(request)提交HTML表单数据。
基本介绍
- 中文名:将字元串以URL编码
- 外文名:UrlEncode
- 函式种类:编码处理
- 返回值:字元串
函式介绍
UrlEncode:将字元串以URL编码
返回值:字元串
函式种类:编码处理
编码原理
将需要转码的字元转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式。
比如:
空格ASCII码是32,对应16进制是20,那幺urlencode编码结果是:%20,但在新标準中空格对应的是+,见RFC-1738
比如:
中ASCII码是-10544,对应的16进制是FFFFFFFFFFFFD6D0,那幺urlencode编码结果是:%D6%D0
内容说明
本函式将字元串以URL编码。例如空格就会变成加号。Homepage 中 form 资料传送就是用 urlencode 编码后再送出。
统一资源标识符(URI)所允许的字元分作保留与未保留,保留字元是那些具有特殊含义的字元。例如,斜线字元用于URL (或者更一般的, URI)不同部分的分界符,未保留字元没有这些特殊含义。百分号编码(Percent-encoding)把保留字元表示为特殊字元序列。上述情形随URI与URI的不同版本规格会有轻微的变化。
部分转换规则如下:
空格 | ! | # | $ | % | + | @ | : | = | ? |
%20 | %21 | %23 | %24 | %25 | %2B | %40 | %3A | %3D | %3F |
用法
ASP中的用法:
Server.URLEncode("内容")
例:
<%
response.write Server.UrlEncode("要转码的内容")
%>
PHP中的用法:
urlencode("内容");
例:
<?
echo urlencode("要转码的内容");
?>
JSP中的用法:
URLEncoder.encode("要转码的内容");
<%
java.net.URLEncoder.encode("要转码的内容","UTF-8"); // 原来单参数方法已经过时。
%>
C#/.net中的用法:
HttpContext.Current.Server.UrlEncode("转码的内容");
VB.NET中的用法:
引用程式集System.Web
採用字元集GB2312来编码
Web.HttpUtility.UrlEncode("转码的内容", Encoding.GetEncoding("GB2312"))。