4

编辑 - 根据答案修改:

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

这是字符串。

"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.HtmlDecodefromSystem.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 是否有内置的实用方法可以处理任何特殊字符?

4

2 回答 2

1

您可以使用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.
于 2013-11-07T15:36:42.053 回答
1

tagText = SecurityElement.Escape(tagText);

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

或者

 System.Net.WebUtility.HtmlDecode(textContent);
于 2014-10-07T18:52:04.240 回答