.NET 相關的 UrlEncode 與 HtmlEncode 方法
URL 編碼方式會將 URL 中不允許的字元轉換為相等的字元實體。
剛好是 UrlEncode 的相反,將透過 UrlEncode 過的字串解碼成原本的字串。
- HttpUtility.UrlEncodeUnicode
等於 JavaScript 的 escape() 方法,用 %uXXXX 的方式表達。
- HttpUtility.UrlPathEncode
HttpUtility.UrlPathEncode 方法不會對下列字元進行編碼:":"、"/"、";" 及 "?",以及 ? 之後的所有字元也不會編碼。
這方法通常用於對網址中「目錄名稱」與「檔名」編碼!
將 HTML 文件中不允許出現的字元進行編碼,通常會編碼 "<"、">"、"&" 等字元。
- HttpUtility.HtmlAttributeEncode
只會將引號 (")、連字號 (&) 和左角括弧 (<) 轉換成對等的字元實體。
它的速度比 HtmlEncode 方法快許多。
HtmlAttributeEncode 方法所產生的字串,僅可用於雙引號括住的屬性 (Attribute)。
將 HtmlAttributeEncode 方法與單引號括住的屬性搭配使用時,可能會發生安全性問題。
剛好是 HtmlEncode 的相反,將透過 HtmlEncode 過的字串解碼成原本的字串。
JavaScript 相關的 UrlEncode 與 HtmlEncode 函數
會以 Unicode 方式進行編碼,用 %uXXXX 的方式呈現編碼的格式。
所有的空格、標點符號、重音字元以及其他非 ASCII 字元均以 %xx 編碼取代,其中的 xx 就等於表示該字元的十六進位數字。
值大於 255 的字元,則以 %uxxxx 格式儲存。
與 encodeURI、encodeURIComponent 不相容
將透過 escape 函數編碼過的字串解碼。
encodeURI 方法不會對下列字元進行編碼:":"、"/"、";"、"?"、"="、"&"。
這個函數的目的在於將一個現有的網址,對各個不同的片段進行編碼,讓現有的網址更加標準化。
將透過 encodeURI 函數編碼過的字串解碼。
這個函數會將所有傳入的字元進行編碼。
他把傳入的字串視為「整個 URI 的部分」,例如說你要有個 QueryString 的參數為 a,但其值是 http://www.example.com/ 的話,你就一定要用 encodeURIComponent 對整個 url 進行編碼!
將透過 decodeURIComponent 函數編碼過的字串解碼。