Html.Encode класс не кодирует ≥ или ≤ символов - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть строка, которая мне нужна для преобразования ее в XML, и по большей части она работает для <или>, но не для символов ≥ или ≤.

Входная строка:

Lorem ipsum dolor sit amet <65 Lorem ipsum dolor sit amet, ≥65 Lorem ipsum dolor sit amet

<span>@Html.Encode(indication.Sentence.CompiledTextTitleCase)</span>

Выходная строка:

Lorem ipsum dolor sit amete &lt;65 Lorem ipsum dolor sit amet ≥65 Lorem ipsum dolor sit amet

Есть идеи, почему это происходит, и как это исправить?

1 Ответ

0 голосов
/ 07 сентября 2018

, в то время как < и > имеют специальное значение в html (начало / конец тега, например, <title>), в нет ничего особенного. Вот почему вы должны кодировать первое, а второе работает как есть.

Сказав это, Html.Encode будет кодировать только те символы, которые имеют особое значение и, следовательно, могут быть неверно истолкованы при чтении этих данных. На стороне клиента вы получите этот код:

<span>Lorem ipsum dolor sit amete &lt;65 Lorem ipsum dolor sit amet ≥65 Lorem ipsum dolor sit amet</span>

, где &lt;65 будет напечатано как <.

Если вы отправите незашифрованный < вашему клиенту, вы получите это:

<span>Lorem ipsum dolor sit amete <65 Lorem ipsum dolor sit amet ≥65 Lorem ipsum dolor sit amet</span>

, который не является действительным html по вышеуказанной причине.

Так что здесь нечего исправлять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...