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