C# 我想将html实体解码为文本,然后执行string.contain操作
我的文本框数据C# 我想将html实体解码为文本,然后执行string.contain操作,c#,html,asp.net,C#,Html,Asp.net,我的文本框数据 txtdata = "javascript is good." 我想把它解码成“javascript很好。” 我使用过WebUtility.HtmlDecode和htmlutility.HtmlDecode,但它不起作用 当我使用 String check = WebUtility.HtmlDecode(txtdata); 或 HtmlUtility.HtmlDecode(txtd
txtdata = "javascript is good."
我想把它解码成“javascript很好。”
我使用过WebUtility.HtmlDecode
和htmlutility.HtmlDecode
,但它不起作用
当我使用
String check = WebUtility.HtmlDecode(txtdata);
或
HtmlUtility.HtmlDecode(txtdata);
然后尝试使用
if (check.Contains("javascript") == true)
它显示false
我尝试过调试,它在检查字符串中显示了与原始“javascript相同的文本,效果很好。”
我能做什么?
谢谢。您的HTML字符串编码不正确,您遗漏了分号。 应该是:
txtdata = "javascript is good.";
使用正确编码的字符串,
HttpUtility.HtmlDecode()
和WebUtility.HtmlDecode()
将返回javascript良好。
您如何在客户端对其进行编码?我建议使用URI.encodeUriComponent,然后在后端使用C#的URI.UnescapeDataString()函数。这是一种更好的方法,因为您将在HTTP请求方面通过URI发送数据。实际上,我正在做一个关于xss预防的项目,我希望这样。谢谢。您想要防止xss,但您尝试实现的方式值得怀疑。如果我不写单词javascript
,它仍然会发生。您可以做的是遵循我建议的方法,然后使用反XSS库。你对它的编码方式没有什么区别