ASP.NET Core 编码、web编码、网页编码 System.Text.Encodings.Web

2019年12月9日 2054点热度 0人点赞 0条评论
内容纲要

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

 

痴者工良

高级程序员劝退师

文章评论