System.Text.Encodings.Web
空間包含表示 Web 編碼器的基類、表示 HTML、JavaScript 和 Url 字符編碼的子類,以及表示僅允許編碼特定字符、字符范圍或碼位的篩選器的類。
[ 定義來自 microsoft ]
該命名空間有五個類,用於不同對象的編碼處理。
五個類
HtmlEncoder | 表示 HTML 字符編碼。 |
JavaScriptEncoder | 表示 JavaScript 字符編碼。 |
TextEncoder | Web 編碼器的基類。 |
TextEncoderSettings | 表示僅允許特定 Unicode 碼位的篩選器。 |
UrlEncoder | 表示 URL 字符編碼。 |
HtmlEncoder
HtmlEncoder 與 HtmlEncoder.Default 的方法有以下幾種
Create、Default、Equals、ReferenceEquals
具體為
我們一般只用到 HtmlEncoder.Default.Encode()
HtmlEncoder.Default.Encode() 的用法
微軟官方的定義
使用 HtmlEncoder.Default.Encode
防止惡意輸入(即 JavaScript)損害應用
也就是說,會對一些符號、中文等進行編碼,使它不能按照原來的形式出現。
編碼
假設有一個新聞系統,用戶可以在新聞文章下評論,如果用戶評論時發表了一段惡意的 javascript 代碼。
若是系統不加以處理,那么當其他用戶打開這篇新聞時,會加載這個人的評論,就會執行這段惡意的 javascript 代碼。
tmlEncoder.Default.Encode 可以把字符串中的 特殊符號(包括中文) 轉為編碼
示例
新建一個asp.net core 應用
在控制器加入以下方法
編譯運行,打開視圖
可以看到,視圖 a 的字符串按照原先的文字進行輸出。而視圖 b 編碼后的文字會編碼特殊符號。
有編碼就有解碼,在這里不再贅述。
其它四個類的使用基本一致,這里就不再贅述
請參考
https://docs.microsoft.com/zh-cn/dotnet/api/system.text.encodings.web?view=netcore-2.0