ASP.NET中HttpUtility.HtmlDecode返回原字符串是什么原因
问题根因
你混淆了HTML编码与URL编码的解码方法,两者适用的编码格式完全不同:
HttpUtility.HtmlDecode仅用于解码HTML实体编码内容,这类编码的特征是实体以&开头、;结尾,比如代表<的<、代表>的>,无法识别%开头的百分号编码规则。- 你输入的
%3CFoobar%3E属于URL百分号编码格式,需要调用对应的URL解码方法才能得到预期结果。
正确实现代码
// 使用HttpUtility.UrlDecode处理百分号编码 string bar = HttpUtility.UrlDecode("%3CFoobar%3E"); // 解码后得到的结果为 <Foobar>
如果你需要验证
HttpUtility.HtmlDecode的效果,可以传入符合HTML实体编码规则的字符串测试:string htmlDecodeTest = HttpUtility.HtmlDecode("<Foobar>"); // 解码后同样得到结果 <Foobar>
内容的提问来源于stack exchange,提问作者Lenny Will
相关产品推荐
相关产品推荐

