1. 程式人生 > >ASP.NET Core 編碼、web編碼、網頁編碼 System.Text.Encodings.Web

ASP.NET Core 編碼、web編碼、網頁編碼 System.Text.Encodings.Web

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