隐藏

C#,.Net Core Escape、Url编码与解码

发布:2021/7/15 17:42:48作者:管理员 来源:本站 浏览次数:1045

不知道大家有没有注意过  字符串保存到数据库里是

这样的一段字符

要引用.net 自带的DLL   Microsoft.JScript

这字符是  Escape编码

?
1
2
3
4
5
6
7
8
9
10
//Escape编码,同js
public static string Escape(string str)
{
    return Microsoft.JScript.GlobalObject.escape(str);
}
//UnEscape解码,同js
public static string UnEscape(string str)
{
    return Microsoft.JScript.GlobalObject.unescape(str);
}

下面是 .net Core
1.URL 编码解码
?
1
2
3
4
string result1 = HttpUtility.UrlEncode("张三丰");
Console.WriteLine(result1); //
string result2 = HttpUtility.UrlDecode(result1);
Console.WriteLine(result2); // 张三丰
HttpUtility.UrlDecode +号变成了空格,有人看到什么都没有以为消失了
可能编码时用的是 string s1= Microsoft.JScript.GlobalObject.escape("A+B");这个编码时,不会对+号进行编码,然后用HttpUtility.UrlDecode解码时+(加号)就变成了空格,解决办法是 HttpUtility.UrlDecode(s1.Replace("+", "+")),这样就可以了

2.获取URL参数键值对
?
1
2
3
4
string path = "name=zhangsan&age=13";
NameValueCollection values = HttpUtility.ParseQueryString(path);
Console.WriteLine(values.Get("name"));// zhangsan
Console.WriteLine(values.Get("age")); // 13
3.HTML 编码解码
?
1
2
3
4
5
string html = "<h1>张三丰</h1>";
string html1 = HttpUtility.HtmlEncode(html);
Console.WriteLine(html1); // &lt;h1&gt;张三丰&lt;/h1&gt;
string html2 = HttpUtility.HtmlDecode(html1);
Console.WriteLine(html2); // <h1>张三丰</h1>