Nur der Vollständigkeit halber: Das eigentliche Long Dash ("mdash") Zeichen ist: - und sollte so breit sein wie das Zeichen "m"
Simon B.
6
Ja, eine Hauptstadt M
Ray Tayek
Antworten:
85
SGML-Parser (oder XML-Parser im Fall von XHTML) können damit umgehen, —ohne die DTD verarbeiten zu müssen (was für Browser nicht wichtig ist, da sie nur Tag-Suppe schlürfen), während —es für Menschen einfacher ist, den Quellcode zu lesen und zu schreiben.
Persönlich würde ich mich an einen wörtlichen Strich halten und sicherstellen, dass meine Einstellungen für die Zeichenkodierung konsistent sind.
Abgesehen von Browserfehlern werden sie in allen Fällen gleich angezeigt, sodass der einzige Unterschied in der Lesbarkeit des Codes besteht, auf die hingewiesen wird —.
Wenn Sie UTF-8 als Zeichensatz in Ihrem HTML-Dokument verwenden, können Sie das Zeichen auch direkt eingeben. Das würde auch genau das gleiche anzeigen.
Beachten Sie, dass dies nur für HTML in XML &8212;funktioniert, obwohl dies —davon abhängt, dass die Entität deklariert wurde.
Flimm
9
—:: —::\u2014
Beachten Sie bei der Darstellung des m-Strichs in einer JavaScript-Textzeichenfolge für die Ausgabe in HTML, dass er durch seinen Unicode-Wert dargestellt wird. Es gibt Fälle, in denen kaufmännisches Und-Zeichen ('&') nicht aufgelöst werden - insbesondere bestimmte Kontexte in JSX. In diesem Fall funktioniert weder —noch —. Stattdessen müssen Sie die Unicode-Escape-Sequenz verwenden : \u2014.
Wenn Sie beispielsweise eine render()Methode zur Ausgabe von Text aus einer JavaScript-Variablen implementieren :
render() {
let text='JSX transcoders will preserve the & character—to '
+ 'protect from possible script hacking and cross-site hacks.'return (
<div>{text}</div>
)
}
Dies wird Folgendes ausgeben:
<div>JSX transcoders will preserve the & character—to protect from possible script hacking and cross-site hacks.</div>
Anstelle der &Darstellung mit dem Präfix - sollten Sie \ u2014 verwenden:
lettext='JSX transcoders will preserve the & character\u2014to …'
Aus Gründen der Portabilität sollten Unicode-Entitätsreferenzen für die Verwendung in Dokumenten reserviert werden, die sicher in den Zeichensätzen UTF-8 oder UTF-16 geschrieben sind. In allen anderen Fällen sollten die alphanumerischen Referenzen verwendet werden.
Übersetzung: Wenn Sie die umfassendste Unterstützung suchen, gehen Sie mit —
Könnte sein, dass die Verwendung des Zahlencodes universeller ist, da er direkt auf ein Zeichen in der HTML-Entitätstabelle verweist, aber ich denke, beide funktionieren überall. Die erste Notation ist für viele Charaktere nur massiv leichter zu merken.
Antworten:
SGML-Parser (oder XML-Parser im Fall von XHTML) können damit umgehen,
—
ohne die DTD verarbeiten zu müssen (was für Browser nicht wichtig ist, da sie nur Tag-Suppe schlürfen), während—
es für Menschen einfacher ist, den Quellcode zu lesen und zu schreiben.Persönlich würde ich mich an einen wörtlichen Strich halten und sicherstellen, dass meine Einstellungen für die Zeichenkodierung konsistent sind.
quelle
Sie sind genau der gleiche Charakter. Siehe: http://en.wikipedia.org/wiki/Dash
Abgesehen von Browserfehlern werden sie in allen Fällen gleich angezeigt, sodass der einzige Unterschied in der Lesbarkeit des Codes besteht, auf die hingewiesen wird
—
.Wenn Sie UTF-8 als Zeichensatz in Ihrem HTML-Dokument verwenden, können Sie das Zeichen auch direkt eingeben. Das würde auch genau das gleiche anzeigen.
quelle
&8212;
funktioniert, obwohl dies—
davon abhängt, dass die Entität deklariert wurde.—
::—
::\u2014
Beachten Sie bei der Darstellung des m-Strichs in einer JavaScript-Textzeichenfolge für die Ausgabe in HTML, dass er durch seinen Unicode-Wert dargestellt wird. Es gibt Fälle, in denen kaufmännisches Und-Zeichen ('&') nicht aufgelöst werden - insbesondere bestimmte Kontexte in JSX. In diesem Fall funktioniert weder
—
noch—
. Stattdessen müssen Sie die Unicode-Escape-Sequenz verwenden :\u2014
.Wenn Sie beispielsweise eine
render()
Methode zur Ausgabe von Text aus einer JavaScript-Variablen implementieren :render() { let text='JSX transcoders will preserve the & character—to ' + 'protect from possible script hacking and cross-site hacks.' return ( <div>{text}</div> ) }
Dies wird Folgendes ausgeben:
<div>JSX transcoders will preserve the & character—to protect from possible script hacking and cross-site hacks.</div>
Anstelle der
&
Darstellung mit dem Präfix - sollten Sie \ u2014 verwenden:let text='JSX transcoders will preserve the & character\u2014to …'
quelle
Von der W3-Website Allgemeine HTML-Entitäten, die für die Typografie verwendet werden
Übersetzung: Wenn Sie die umfassendste Unterstützung suchen, gehen Sie mit
—
quelle
Könnte sein, dass die Verwendung des Zahlencodes universeller ist, da er direkt auf ein Zeichen in der HTML-Entitätstabelle verweist, aber ich denke, beide funktionieren überall. Die erste Notation ist für viele Charaktere nur massiv leichter zu merken.
quelle