ASP.NET Core命名空间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

具体为

ASP.NET Core命名空间System.Text.Encodings.Web介绍_第1张图片

我们一般只用到 HtmlEncoder.Default.Encode()

HtmlEncoder.Default.Encode()的用法

微软官方的定义

使用HtmlEncoder.Default.Encode防止恶意输入(即 JavaScript)损害应用

也就是说,会对一些符号、中文等进行编码,使它不能按照原来的形式出现。

编码

假设有一个新闻系统,用户可以在新闻文章下评论,如果用户评论时发表了一段恶意的 javascript 代码。

若是系统不加以处理,那么当其他用户打开这篇新闻时,会加载这个人的评论,就会执行这段恶意的 javascript 代码。

tmlEncoder.Default.Encode 可以把字符串中的 特殊符号(包括中文) 转为编码

示例

新建一个asp.net core 应用

在控制器加入以下方法

ASP.NET Core命名空间System.Text.Encodings.Web介绍_第2张图片

编译运行,打开视图

ASP.NET Core命名空间System.Text.Encodings.Web介绍_第3张图片

可以看到,视图 a 的字符串按照原先的文字进行输出。而视图 b 编码后的文字会编码特殊符号。

有编码就有解码,在这里不再赘述。

其它四个类的使用基本一致,这里就不再赘述

请参考

https://docs.microsoft.com/zh-cn/dotnet/api/system.text.encodings.web?view=netcore-2.0

到此这篇关于ASP.NET Core命名空间System.Text.Encodings.Web介绍的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

你可能感兴趣的:(ASP.NET Core命名空间System.Text.Encodings.Web介绍)