Pergunta

Editar - modificado com base na resposta:

Ok, aqui está o que eu modifiquei com base na resposta:

Aqui está a string.

"November is Fruit's Fresh."    

Aqui está o que estou fazendo:

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

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

Quando ele retorna, ainda estou recebendo o mesmo texto November is Fruit's Fresh.

ENDO ENDIT

Eu tentei usar HttpUtility.HtmlDecode a partir de System.Web e também tentei usar SecurityElement.Escape Mas não escapa nada corretamente.

Então, eu escrevo meu próprio método de substituição algo assim:

    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;
    }

Funciona na minha situação, mas é difícil cobrir tudo e, na minha situação, tenho alguns personagens europeus como í``(&#237;) ou é (&#233;)

Existe um método de utilidade embutido .NET que toma cuidados de algum personagem especial?

Foi útil?

Solução

Você pode usar HtmlEncode Para codificar a string e então você pode usar HtmlDecode Para devolver o valor original:

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);  //éí&

Com sua atualização, você só precisa decodificar a string:

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

Outras dicas

tagText = SecurityElement.escape (tagText);

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

ou

 System.Net.WebUtility.HtmlDecode(textContent);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top