Декодирование строки с использованием htmldecode или excape

StackOverflow https://stackoverflow.com/questions/19839078

Вопрос

Редактировать - модифицировано на основе ответа:

Хорошо, вот что я изменил на основе ответа:

Вот строка.

"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.HtmlDecode из System.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