如何在title属性中转义双引号

时间:2010-09-20 15:10:21

标签: html escaping quotes

我试图在锚的title属性中使用包含双引号的字符串。到目前为止,我尝试过这些:

<a href=".." title="Some \"text\"">Some text</a>
<!-- title looks like `Some \` --!>

<a href=".." title="Some &quot;text&quot;">Some text</a>
<!-- title looks like `Some ` --!>

请注意,使用单引号不是选项。

8 个答案:

答案 0 :(得分:250)

此变体 -

<a href=".." title="Some &quot;text&quot;">Some text</a>

是正确的,它按预期工作 - 您在渲染页面中看到正常的引号。

答案 1 :(得分:20)

编辑:链接似乎已经死了,所以这是从archive.org上的缓存页面获取的转义字符片段:

&#060   |   less than sign  <       
&#064   |   at sign @       
&#093   |   right bracket   ]       
&#123   |   left curly brace    {       
&#125   |   right curly brace   }       
&#133   |   ellipsis    …       
&#135   |   double dagger   ‡       
&#146   |   right single quote  ’       
&#148   |   right double quote  ”       
&#150   |   short dash  –       
&#153   |   trademark   ™       
&#162   |   cent sign   ¢       
&#165   |   yen sign    ¥       
&#169   |   copyright sign  ©       
&#172   |   logical not sign    ¬       
&#176   |   degree sign °       
&#178   |   superscript 2   ²       
&#185   |   superscript 1   ¹       
&#188   |   fraction 1/4    ¼       
&#190   |   fraction 3/4    ¾       
&#247   |   division sign   ÷       
&#8221  |   right double quote  ”       
&#062   |   greater than sign   >   
&#091   |   left bracket    [   
&#096   |   back apostrophe `   
&#124   |   vertical bar    |   
&#126   |   tilde   ~   
&#134   |   dagger  †   
&#145   |   left single quote   ‘       
&#147   |   left double quote   “   
&#149   |   bullet  •   
&#151   |   longer dash —   
&#161   |   inverted excallamation point    ¡   
&#163   |   pound sign  £   
&#166   |   broken vertical bar ¦   
&#171   |   double left than sign   «   
&#174   |   registered trademark sign   ®   
&#177   |   plus or minus sign  ±   
&#179   |   superscript 3   ³   
&#187   |   double greather than sign   »   
&#189   |   fraction 1/2    ½   
&#191   |   inverted question mark  ¿   
&#8220  |   left double quote   “   
&#8212  |   dash    —   

/ EDIT

试一试

HTML Escape character list.

这是所有这些角色的绝佳参考。

答案 2 :(得分:7)

也可以使用转义码&#34;代替&quot;

答案 3 :(得分:3)

使用&quot;是这样做的方法,我尝试了第二个代码段,它适用于Firefox和IE。

答案 4 :(得分:2)

它可能适用于HTML Escape character list中的任何字符,但我在Java项目中遇到了同样的问题。我使用了StringEscapeUtils.escapeHTML("Testing \" <br> <p>"),标题为<a href=".." title="Test&quot; &lt;br&gt; &lt;p&gt;">Testing</a>

当我将StringEscapeUtils更改为StringEscapeUtils.escapeJavascript("Testing \" <br> <p>")并且它在每个浏览器中都有效时,它只适用于我。

答案 5 :(得分:1)

至少有一种情况是使用单引号不起作用,即如果您是从Javascript“动态”创建标记。您使用单引号来包含字符串,然后标记中的任何属性都可以为其值添加双引号。

答案 6 :(得分:0)

也许您可以使用JavaScript来解决跨浏览器问题。它使用了一种不同的逃逸机制,你显然已经熟悉了它:

(reference-to-the-tag).title = "Some \"text\"";

它并没有像现在人们想要的那样严格区分HTML,JS和CSS的功能,但是你需要为谁开心?您不认识的用户或技术人员?

答案 7 :(得分:-2)

您可以使用此PHP代码列出特殊字符...

<table border="1"><?php for($i=33;$i<9000;$i++)echo "<tr><td>&#38;#$i;<td>&#".$i.";"; ?></table>