—
或—
这些之间有区别吗?是否有一个比另一个更好的支持?
答案 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—to protect from possible script hacking and cross-site hacks.</div>
- 前缀表示,您应该使用\ u2014:
&
答案 3 :(得分:1)
使用数字代码可能更通用,因为它是对html实体表中字符的直接引用,但我猜它们都可以在任何地方使用。对于很多角色来说,第一种符号非常容易记住。