ASP.NET HTML相關編碼方法
ASP.NET 針對HTML相關的編碼,可以分成網址編碼、網頁內容編碼兩部分
這裡分別記錄這些常見的編碼方式,提供參考
[網址編碼]
URL Encode - HttpUtility.UrlEncode
HttpUtility.UrlEncode 可以將字串編碼成 URL 可讀取得模式
string url_text = "http://adon988.logdown.com/這是測試 this i stest";
Response.Write(url_text); //http://adon988.logdown.com/url ASP.NET HTML相關編碼方法
string url_encode = HttpUtility.UrlEncode(url_text);
Response.Write(url_encode);//輸出: http%3a%2f%2fadon988.logdown.com%2furl+ASP.NET+HTML%e7%9b%b8%e9%97%9c%e7%b7%a8%e7%a2%bc%e6%96%b9%e6%b3%95
附註說明:
在 ASP.NET 還有提供另一個 HttpUtility.UrlEncodeUnicode 編碼的方法
若網址有包含中文或多國語言的情況,可能會有解碼錯誤問題,不建議使用
URL Decode - HttpUtility.UrlDecode
HttpUtility.UrlEncode 可以將 URL編碼字串 進行解碼,恢復成一般文字
string urlencode_string = "http%3a%2f%2fadon988.logdown.com%2furl+ASP.NET+HTML%e7%9b%b8%e9%97%9c%e7%b7%a8%e7%a2%bc%e6%96%b9%e6%b3%95";
string urldecode_txt = HttpUtility.UrlDecode(urlencode_string);//輸出: http://adon988.logdown.com/url ASP.NET HTML相關編碼方法
Response.Write(urldecode_txt + "<br>");
[內容編碼]
HTML 標籤編碼 - HttpUtility.HtmlEncode
HttpUtility.HtmlEncode 可以將HTML標籤進行編碼成網頁符號字元
例如,<a>
CVT2HUGO: 在HTML屬於超連結標籤,經過內容編碼則轉成一般文字
string htmlencode_txt = HttpUtility.HtmlEncode("<a href='#'>This is Link</a>");
Response.Write(htmlencode_txt);
輸出
<a href='#'>This is Link</a>
附註說明:
在 ASP.NET 有另一個功能類似的 HttpUtility.HtmlAttributeEncode,僅適用於雙引號內的屬性、&、< 等字元進行轉換,若屬性是用單引號,則不適用。目前不推薦再使用這個方式。
HTML 標籤解碼 - HttpUtility.HtmlDecode
HttpUtility.HtmlEncode 可以將HTML標籤進行編碼成網頁符號字元
例如,<a>
CVT2HUGO: 在HTML屬於超連結標籤,經過內容編碼則轉成一般文字
//編碼字串
string htmlencode_txt = HttpUtility.HtmlEncode("<a href='#'>This is Link</a>");
//解碼字串
string htmldecode_txt = HttpUtility.HtmlDecode(htmlencode_txt);
Response.Write(htmldecode_txt);
輸出
This is Link <----有作用的超連結