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

如何在C#中解密SQL Server经FOR XML PATH('')转义的特殊字符字符串

解决SQL Server FOR XML PATH('')转义字符串的C#还原方案

FOR XML PATH('')生成的转义字符串遵循XML实体编码规则,直接对其做XML解码即可还原为原始值,以下是两种常用的可落地实现方案:

方法1:使用WebUtility.HtmlDecode(最简实现,跨版本兼容)

该方法属于.NET原生提供的API,支持.NET Framework、.NET Core/.NET 5+全版本,无需引入额外依赖:

using System.Net;

// 示例转义字符串
string encodedStr = "Companys";
string originalStr = WebUtility.HtmlDecode(encodedStr);
// 输出结果:Company's

方法2:使用XmlReader解码(严格遵循XML规范)

如果需要完全适配XML编码规则、避免HTML兼容逻辑的干扰,可以用XML解析器原生能力实现解码:

using System.IO;
using System.Xml;

public static string XmlDecode(string encodedStr)
{
    if (string.IsNullOrEmpty(encodedStr))
        return encodedStr;
    
    var xmlSettings = new XmlReaderSettings
    {
        ConformanceLevel = ConformanceLevel.Fragment
    };
    
    using (var reader = XmlReader.Create(new StringReader(encodedStr), xmlSettings))
    {
        reader.MoveToContent();
        return reader.ReadElementContentAsString();
    }
}

// 调用示例
string encodedStr = "Companys";
string originalStr = XmlDecode(encodedStr);

注意事项

  • 不推荐使用已过时的HttpUtility.HtmlDecode,该API依赖System.Web命名空间,仅适用于.NET Framework的ASP.NET场景,跨版本兼容性差。
  • 如果还原后仍存在转义符,可检查原始字符串是否存在多次转义的情况,重复调用1次解码方法即可处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:27:03