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"))。