`-`或`-`是否有HTML输出的差异?

时间:2010-11-09 12:44:40

标签: html ascii

——

这些之间有区别吗?是否有一个比另一个更好的支持?

4 个答案:

答案 0 :(得分:82)

SGML解析器(或XHTML情况下的XML解析器)可以处理—而无需处理DTD(这对浏览器来说无关紧要,因为它们只是标记汤),而—人类更容易在源代码中读写。

就个人而言,我会坚持使用文字em-dash并确保我的字符编码设置是一致的。

答案 1 :(得分:13)

他们是完全相同的角色。请参阅:http://en.wikipedia.org/wiki/Dash

除了浏览器错误之外,它们在所有情况下都会显示相同的内容,因此唯一的区别在于代码可读性,这将指向—

或者,如果您在HTML文档中使用UTF-8作为字符集,则可以直接输入字符。这也会显示完全一样。

答案 2 :(得分:5)

attack :: — :: —

在JavaScript文本字符串中表示m-dash以输出到HTML时,请注意它由unicode值表示。有些情况下,无法解析&符号('&') - 特别是JSX中的某些上下文。在这种情况下,\u2014—都不起作用。相反,您需要使用Unicode转义序列:—

例如,当实现\u2014方法从JavaScript变量输出文本时:

render()

这将输出:

render() {
   let text='JSX transcoders will preserve the & character—to ' 
            + 'protect from possible script hacking and cross-site hacks.'
   return (
     <div>{text}</div>
   )
}

而不是<div>JSX transcoders will preserve the & character&mdash;to protect from possible script hacking and cross-site hacks.</div> - 前缀表示,您应该使用\ u2014:

&

答案 3 :(得分:1)

使用数字代码可能更通用,因为它是对html实体表中字符的直接引用,但我猜它们都可以在任何地方使用。对于很多角色来说,第一种符号非常容易记住。