Как избежать <и> внутри тегов <pre>


89

Я пытаюсь написать сообщение в блоге, которое включает в себя сегмент кода внутри <pre>тега. Сегмент кода включает универсальный тип и использует<> для определения этого типа. Так выглядит сегмент:

<pre>
    PrimeCalc calc = new PrimeCalc();
    Func<int, int> del = calc.GetNextPrime;
</pre>

В результате HTML удаляется <> и заканчивается следующим образом:

PrimeCalc calc = new PrimeCalc();
Func del = calc.GetNextPrime;

Как мне избежать, <>чтобы они отображались в HTML?


3
&lt;и&gt;
Алан Донг

Вы можете просто использовать онлайн-форматировщик: freeformatter.com/html-escape.html
kaore

Ответы:


113
<pre>
    PrimeCalc calc = new PrimeCalc();
    Func&lt;int, int&gt; del = calc.GetNextPrime;
</pre>

17
Мне жаль, что для этого еще не внедрены технологии.
Sathish Kumar kk

Конечно, амперсанд - это тоже то, что нужно указывать в том же контексте, что и угловые скобки, поэтому я не уверен, насколько полезно использовать «&», если «<» и «>» нуждаются в объектах html.
Астара

21
<pre>&gt;</pre>

отображается как:

>

Итак, вы хотите:

<pre>
    PrimeCalc calc = new PrimeCalc();
    Func&lt;int, int&gt; del = calc.GetNextPrime;
</pre>

что получается как:

    PrimeCalc calc = новый PrimeCalc ();
    Func <int, int> del = calc.GetNextPrime;




2

Что сказал rp , просто замените символы больше (>) и меньше (<) их эквивалентами html-сущности. Вот пример:

<pre>
    PrimeCalc calc = new PrimeCalc();
    Func&lt;int, int&gt; del = calc.GetNextPrime;
</pre>

Это должно выглядеть так (на этот раз с использованием того же самого, без добавленных пробелов для уценки):

    PrimeCalc calc = новый PrimeCalc ();
    Func <int, int> del = calc.GetNextPrime;

-1

Вероятно, это что-то особенное для программного обеспечения вашего блога, но вы можете попробовать следующие строки (удалите символ подчеркивания): & _lt; & _gt;


-4

Лучше всего вообще не беспокоиться о кодах символов. Просто оберните весь свой код в <pre>теги следующими

<pre>
${fn:escapeXml('
  <!-- all your code -->
')};
</pre>

Тем не менее, вам необходимо включить jQuery, чтобы он работал.


1
Это не лучше. Затем вам нужно будет экранировать свой контент для JavaScript. В некоторых случаях все же возможно вырваться из JavaScript. Например, что, если в нем есть контент </pre>?
Брэд,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.