Question

Edit - Modifié en fonction de la réponse:

D'accord, voici ce que j'ai modifié en fonction de la réponse:

Voici la chaîne.

"November is Fruit's Fresh."    

Voici ce que je fais:

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

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

Quand il revient, je reçois toujours le même texte November is Fruit's Fresh.

Terminer la modification

J'ai essayé d'utiliser HttpUtility.HtmlDecode de System.Web et aussi essayé d'utiliser SecurityElement.Escape Mais il n'échappe rien correctement.

Alors je finis par écrire ma propre méthode de remplacement quelque chose comme ceci:

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

Cela fonctionne dans ma situation, mais il est difficile de tout couvrir et dans ma situation, j'ai des personnages européens comme í``(&#237;) ou é (&#233;)

Y a-t-il une méthode utilitaire intégrée .NET qui prend des soucis de caractères spéciaux?

Était-ce utile?

La solution

Vous pouvez utiliser HtmlEncode Pour encoder la chaîne et ensuite vous pouvez utiliser HtmlDecode Pour retourner la valeur d'origine:

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

Avec votre mise à jour, il vous suffit de décoder la chaîne:

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

Autres conseils

TagText = SecurityElement.Escape (TagText);

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

ou

 System.Net.WebUtility.HtmlDecode(textContent);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top