Comment échapper <et> à l'intérieur des balises <pre>


88

J'essaie d'écrire un article de blog qui comprend un segment de code dans une <pre>balise. Le segment de code comprend un type générique et utilise <>pour définir ce type. Voici à quoi ressemble le segment:

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

Le HTML résultant supprime le <>et se termine comme ceci:

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

Comment puis-je échapper aux <>pour qu'ils apparaissent dans le HTML?


3
&lt;et&gt;
Alan Dong

Vous pouvez simplement utiliser un formateur en ligne: freeformatter.com/html-escape.html
kaore

Réponses:


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

17
Je me sens mal qu'aucune technologie ne soit encore introduite pour cela.
Sathish Kumar kk

Bien sûr, l'esperluette est aussi quelque chose qui doit être cité dans le même contexte que les crochets angulaires, je ne suis donc pas sûr de l'utilité d'utiliser '&' si '<' et '>' ont besoin d'entités html.
Astara

21
<pre>&gt;</pre>

rend comme:

>

Alors tu veux:

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

qui se révèle comme:

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

14

Utilisez &lt;et &gt;à faire <et à l' >intérieur du html.




2

Ce que rp a dit , remplacez simplement les symboles supérieur à (>) et inférieur à (<) par leur équivalent d'entité html. Voici un exemple:

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

Cela devrait apparaître comme (cette fois en utilisant exactement la même chose sans les espaces préfixés pour le démarquage):

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

-1

C'est probablement quelque chose de spécifique à votre logiciel de blog, mais vous pouvez essayer les chaînes suivantes (supprimez le caractère de soulignement): & _lt; & _gt;


-4

Une meilleure façon de faire est de ne pas avoir à se soucier du tout des codes de caractères. Enveloppez simplement tout votre code dans les <pre>balises avec ce qui suit

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

Vous aurez besoin d'avoir jQuery activé pour que cela fonctionne, tho.


1
Ce n'est pas mieux. Vous devrez alors échapper à votre contenu pour JavaScript. Dans certains cas, il est toujours possible de sortir du JavaScript. Par exemple, et si le contenu contenait </pre>?
Brad
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.