Как мне декодировать HTML, который был закодирован в JS с помощью encodeURIComponent()?

#c# #javascript #asp.net #asp.net-mvc

#c# #javascript #asp.net #asp.net-mvc

Вопрос:

Я пытался :

 string decodedHtml = HttpUtility.HtmlDecode(html);
  

Где html — это закодированный html. Кажется, что это вообще не изменяет строку. HTML все еще закодирован.

Комментарии:

1. Пожалуйста, покажите пример строки

2. HtmlDecode декодирует только значения, которые были закодированы с использованием HtmlEncode. К вашему сведению, есть различия между: HtmlEncode и UrlEncode против Uri.EscapDataString. Некоторая полезная информация здесь : blogs.msdn.com/b/yangxind/archive/2006/11/09 /…

3. Обратите внимание, что Asp.Net/Mvc действия обычно автоматически преобразуют параметры запроса URL, закодированные таким образом (encodeURIComponent), в простые строки: если вашему методу action требуется «ParamName», он пытается найти это значение в качестве параметра запроса (он также проверяет параметры form-post). Это называется «привязкой параметров». Он также преобразует более сложные типы, например bool, int, float.

Ответ №1:

 string s = System.Uri.UnescapeDataString(html);
  

Ответ №2:

Думаю, вы сможете использовать этот код.

 HttpContext.Current.Server.UrlDecode(html)
  

Ответ №3:

`

 <p>Click the button to encode a URI.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
  var uri = "https://informerspro.com";
  var res = encodeURIComponent(uri);
  document.getElementById("demo").innerHTML = res;
}
</script>  

`

Комментарии:

1. Пожалуйста, не публикуйте только код в качестве ответа, но также предоставьте объяснение, что делает ваш код и как он решает проблему вопроса. Ответы с объяснением обычно более полезны и более высокого качества, и с большей вероятностью получат положительные отзывы.