我需要在html <pre> tag</pre>内逃脱什么

时间:2009-08-13 16:36:49

标签: html html-encode

我在博客中使用<pre>标记发布代码。我知道我必须将<更改为&lt;,将>更改为&gt;。我需要转义任何其他字符才能找到正确的HTML吗?

4 个答案:

答案 0 :(得分:9)

如果您使用<pre>标记在博客上显示HTML标记会发生什么:

<pre>Use a <span style="background: yellow;">span tag with style attribute</span> to hightlight words</pre>

这会传递HTML验证,但是它会产生预期的结果吗? 即可。正确的方法是:

<pre>Use a &lt;span style=&quot;background: yellow;&quot;&gt;span tag with style attribute&lt;/span&gt; to hightlight words</pre>

另一个例子:如果你使用pre标签显示其他语言代码,仍然需要HTML编码:

<pre>if (i && j) return;</pre>

这可能会产生预期的结果但会通过HTML验证吗? 即可。正确的方法是:

<pre>if (i &amp;&amp; j) return;</pre>

简而言之,对预标记的内容进行HTML编码,就像使用其他标记一样。

答案 1 :(得分:5)

“仅供您使用” - HTML“fosile”版本:使用set _cmd=%1 set _java=javaw if "%_cmd%"=="" set _cmd=default if "%_cmd%"=="-h" set _java=java %_java% -classpath . RunWeka -i .\RunWeka.ini -w .\weka.jar -c %_cmd% "%2" 代码

这不是众所周知的,但它确实存在,甚至铬仍然支持它, 然而,使用 <xmp>标记不推荐依赖于它 - 它只适合您,但它是一种非常简单的方式来处理您的个人问题。 DOCS。甚至w3.org WIKI在例子中说“不,真的。不要使用它。”

您可以在<xmp>

中放置任何html(不包括</xmp>结束标记)
<xmp></xmp>

正确的版本

可以将正确的版本视为存储为 STRING 的HTML,并在某些转义功能的帮助下显示。
请记住一件事 - C语言中的字符串通常用单引号或双引号括起来 - 如果你将字符串换成double =&gt;如果你将你的字符串换成单个=&gt;你应该逃脱双打(可能与<xmp> <html> <br> just any other html tags... </xmp> )。逃脱单打(可能与\)......

最常见的方式 - 服务器端语言转义(例如在PHP中)

服务器端脚本语言通常具有一些内置函数来转义HTML。

\

客户端方式(JavaScript&amp; jQuery中的示例)

在客户端脚本中可以实现与服务器端类似的方法, 根据我所知,JavaScript没有内置函数(这是非常合乎逻辑的),但是如果你使用一些框架/库,比如jQuery,那么有些函数可以这样使用。
只要记住与服务器端相同的东西 - 在类C语言中,转义你已经将字符串包裹起来的引号......

<?php
   $html = "<html> <br> or just any other HTML"; //store html
   echo htmlspecialchars($html); //display escaped html
?>

答案 2 :(得分:-1)

要在标记中发布代码,建议您使用<code>标记。它的工作方式与pre相同,但在语义上也是正确的。

否则,&lt; code&gt;和&lt; pre&gt;只需要编码的尖括号。

答案 3 :(得分:-4)

使用它,不要担心它们中的任何一个。

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

您需要启用jQuery才能正常工作。