Как избежать символов HTML? в .NET → "

Как избежать символов HTML в .NET?

Я хватаю html из строки json и в заголовке я получаю "more text. Похоже, мне нужно сделать это дважды, чтобы получить ", чтобы стать ", тогда это будет ".".

Как я могу избежать всех escape-кодов HTML html в .NET?

Ответ 1

Если вам нужно сделать это дважды, то вы дважды закодировали исходную строку, и вам придется дважды декодировать ее, чтобы вернуться к исходной (некодированной) строке.

Вы можете использовать System.Web.HttpUtility.HtmlEncode() и HtmlDecode() для этих целей.

Ответ 2

Посмотрите на класс HttpUtility. Он имеет некоторые полезные статические функции.

Однако, как указывает @codekaizen, пример, который у вас есть, выглядит двойным. Если у вас нет контроля над исходным кодом, тогда играйте с функциями HtmlDecode и (возможно?) UrlDecode в HttpUtility, чтобы, возможно, вы удалили исходные ошибки.

Ответ 3

Похоже, ваша исходная строка была дважды закодирована. quot; является лишь частичным сущностью, и он не может быть декодирован в характер сам по себе. Если вы получаете заголовок с веб-страницы, которую вы не контролируете, вы можете сделать мало что, если не хотите, дважды декодировать.

Ответ 4

Да, вам придется дважды декодировать строку HTML, поскольку она, кажется, дважды закодирована.

Возможно, вам стоит взглянуть на источник и выяснить, почему в первую очередь используется HTML-кодировка. Это не должно быть, даже не один раз. Строка JSON не является HTML, поэтому ее вообще не следует кодировать HTML.

Чтобы закодировать кавычку в строке JSON, используйте обратную косую черту, поэтому правильный JSON должен выглядеть примерно так:

{"title":"\"I Won't Let Them Take You\""}