You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.Net Core中System.Web.HttpUtility.HtmlDecode遇&符号失效求助

解决.NET Core中HtmlDecode未按预期工作的问题

嘿,这个问题我之前也碰到过!在.NET Core里用System.Web.HttpUtility.HtmlDecode确实容易踩坑,因为这个类是从传统ASP.NET Framework继承过来的,在跨平台环境下的实现并不完善,导致没法正确解码HTML实体。

直接换用System.Net.WebUtility.HtmlDecode就搞定了

.NET Core(包括.NET 5及以后版本)官方推荐用System.Net.WebUtility中的解码方法,它是专门为跨平台场景设计的,处理HTML编码/解码更可靠,而且不需要额外安装任何NuGet包。

把你的代码改成这样就行:

string x = "&Microsoft<?xml version=";
string y = System.Net.WebUtility.HtmlDecode(x);
Console.WriteLine(y); // 会输出你想要的:&Microsoft<?xml version=
Console.ReadLine();

为啥原来的方法不行?

简单来说,.NET Core重构了很多ASP.NET Framework的组件,System.Web命名空间下的很多工具类(包括HttpUtility)都不再是核心推荐的方案,它们的实现被简化甚至有功能缺失。而WebUtility属于.NET基础类库的一部分,对HTML实体的解析逻辑更标准,能准确把&lt;转换成<,同时保留原本不是HTML实体的&符号——完全匹配你期望的结果。

内容的提问来源于stack exchange,提问作者Saravanapandian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 19:12:59