Cómo escapar <y> dentro de las etiquetas <pre>


89

Estoy tratando de escribir una publicación de blog que incluya un segmento de código dentro de una <pre>etiqueta. El segmento de código incluye un tipo genérico y se utiliza <>para definir ese tipo. Así es como se ve el segmento:

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

El HTML resultante elimina el <>y termina así:

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

¿Cómo escapo <>para que aparezcan en el HTML?


3
&lt;y&gt;
Alan Dong

Puede usar un formateador en línea: freeformatter.com/html-escape.html
kaore

Respuestas:


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

17
Me siento mal porque todavía no se ha introducido ninguna tecnología para esto.
Sathish Kumar kk

Por supuesto, el ampersand también es algo que debe citarse en el mismo contexto que los corchetes angulares, por lo que no estoy tan seguro de lo útil que es usar '&' si '<' y '>' necesitan entidades html.
Astara

21
<pre>&gt;</pre>

se presenta como:

>

Entonces quieres:

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

que resulta como:

    PrimeCalc calc = nuevo PrimeCalc ();
    Func <int, int> del = calc.GetNextPrime;




2

Lo que dijo rp , simplemente reemplace los símbolos mayor que (>) y menor que (<) con su entidad html equivalente. He aquí un ejemplo:

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

Esto debería aparecer como (esta vez usando exactamente lo mismo sin los espacios antepuestos para la rebaja):

    PrimeCalc calc = nuevo PrimeCalc ();
    Func <int, int> del = calc.GetNextPrime;

-1

Probablemente sea algo específico del software de su blog, pero es posible que desee probar las siguientes cadenas (elimine el carácter de subrayado): & _lt; & _gt;


-4

Una mejor manera de hacerlo es no tener que preocuparse en absoluto por los códigos de caracteres. Simplemente envuelva todo su código dentro de las <pre>etiquetas con lo siguiente

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

Necesitará tener jQuery habilitado para que funcione, aunque.


1
Esto no es mejor. Luego, necesitaría escapar su contenido para JavaScript. En algunos casos, todavía es posible romper con JavaScript. Por ejemplo, ¿y si el contenido lo tuviera </pre>?
Brad
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.