编辑 - 根据答案进行了修改:

好的,这是我根据答案修改的内容:

这是字符串。

"November is Fruit's Fresh."    

这是我在做的:

    static string EscapeCharacters(string txt)
    {
        string encodedTxt = HttpUtility.HtmlEncode(txt);
        return HttpUtility.HtmlDecode(encodedTxt);
    }

    string _decodedTxt = EscapeCharacters("November is Fruit's Fresh.");

当它返回时,我仍然得到相同的文字 November is Fruit's Fresh.

结束编辑

我尝试使用 HttpUtility.HtmlDecodeSystem.Web 并尝试使用 SecurityElement.Escape 但是它不能正确逃脱任何东西。

因此,我最终编写自己的替换方法这样的方法:

    static string EscapeXMLCharacters(string txt)
    {
        string _txt = txt.Replace("&amp;", "&").Replace("&lt;", "<").Replace("&gt;", ">").Replace("&quot;", "\"").Replace("&apos;", "'").Replace("&#38;", "&").Replace("&#60;", "<").Replace("&#62;", ">").Replace("&#34;", "\\").Replace("&#39;", "'");
        return _txt;
    }

它确实在我的情况下起作用,但很难涵盖一切,在我的情况下,我有一些欧洲角色,例如 í``(&#237;) 或者 é (&#233;)

是否有一个内置的实用方法内置的.NET照顾任何特殊字符?

有帮助吗?

解决方案

您可以使用 HtmlEncode 要编码字符串,然后您可以使用 HtmlDecode 返回原始值:

string x = "éí&";
string encoded = System.Web.HttpUtility.HtmlEncode(x);
Console.WriteLine(encoded);  //&#233;&#237;&amp;

string decoded = System.Web.HttpUtility.HtmlDecode(encoded);
Console.WriteLine(decoded);  //éí&

通过更新,您只需要解码字符串:

String decoded = System.Web.HttpUtility.HtmlDecode("November is Fruit&#39;s Fresh.");
Console.WriteLine(decoded);   //November is Fruit's Fresh.

其他提示

tagText = securityElement.escape(tagtext);

http://msdn.microsoft.com/en-us/library/system.security.securityelement.escape.aspx

或者

 System.Net.WebUtility.HtmlDecode(textContent);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top