函式介紹
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("內容")
例:
PHP中的用法:
urlencode("內容");
例:
echo urlencode("要轉碼的內容");
?>
JSP中的用法:
URLEncoder.encode("要轉碼的內容");
C#/.net中的用法:
HttpContext.Current.Server.UrlEncode("轉碼的內容");
VB.NET中的用法:
引用程式集System.Web
採用字元集GB2312來編碼
Web.HttpUtility.UrlEncode("轉碼的內容", Encoding.GetEncoding("GB2312"))。