Das hat mich seit einiger Zeit verwirrt. Mit dem Aufkommen von UTF-8 als De-facto-Standard in der Webentwicklung bin ich mir nicht sicher, in welchen Situationen ich die HTML-Entitäten verwenden soll und für welche ich nur das UTF-8-Zeichen verwenden soll. Beispielsweise,
- em dash (-,
&emdash;
) - kaufmännisches Und (&,
&
) - 3/4 Fraktion (¾,
¾
)
Bitte beleuchten Sie dieses Problem. Es wird geschätzt.
html
xhtml
html-entities
allesklar
quelle
quelle
Antworten:
Sie müssen im Allgemeinen keine HTML-Zeichenentitäten verwenden, wenn Ihr Editor Unicode unterstützt. Entitäten können nützlich sein, wenn:
Code klarer als das entsprechende Leerzeichen.<
,&
oder"
.quelle
anstelle des eigentlichen Leerzeichens vor, auch weil Firefox U + 00A0 in Formularen in U + 0020 konvertiert. Die Verwendung der Entität ist in diesem Fall die einzige Möglichkeit, um sicherzustellen, dass die Quelle nicht jedes Mal durcheinander gebracht wird, wenn ein Firefox-Benutzer sie bearbeitet.<
dass häufig ein Escapezeichen benötigt wird, niemals>
(und"
nur selten innerhalb von Attributwerten ein Escapezeichen benötigt wird).&
immer statt verwendet werden&
? Gibt es einen Grund dafür?Aufgrund der Kommentare, die ich erhalten habe, habe ich dies etwas weiter untersucht. Es scheint, dass derzeit die beste Vorgehensweise darin besteht, auf die Verwendung von HTML-Entitäten zu verzichten und stattdessen das eigentliche UTF-8-Zeichen zu verwenden . Die aufgeführten Gründe sind folgende:
Solange die Codierung Ihrer Seite ordnungsgemäß auf UTF-8 eingestellt ist, sollten Sie das tatsächliche Zeichen anstelle einer HTML-Entität verwenden. Ich habe mehrere Dokumente zu diesem Thema gelesen, aber die hilfreichsten waren:
Aus dem Artikel UTF-8: Das Geheimnis der Zeichenkodierung :
Dieser Artikel enthält auch ein schönes Beispiel für die chinesische Codierung. Hier ist das abgekürzte Beispiel aus Gründen der Faulheit:
UTF-8:
這兩個字是甚麼意思
HTML-Entitäten :
這兩個字是甚麼意思
Die UTF-8- und HTML-Entitätscodierungen sind für mich beide bedeutungslos, aber zumindest die UTF-8-Codierung ist als Fremdsprache erkennbar und wird in einem Bearbeitungsfeld ordnungsgemäß gerendert. In dem Artikel wird Folgendes über die HTML-Entitäts-codierte Version gesagt:
Wie andere angemerkt haben, müssen Sie weiterhin HTML-Entitäten für reservierte XML-Zeichen verwenden (kaufmännisches Und, kleiner als, größer als).
quelle
&entity;
Syntax in einem HTML-Dokument mit einem deklarierten UTF-8-Zeichensatz zu verwenden, richtig? Während einfache UTF-8-Zeichen aus den von Ihnen aufgeführten Gründen besser sind, gibt es kein Problem, wenn sich noch einige HTML-Entitäten im selben Dokument befinden?Ich würde UTF-8 nicht für Zeichen verwenden, die visuell leicht zu verwechseln sind. Zum Beispiel ist es schwierig, einen Emdash von einem Minus oder insbesondere einen nicht unterbrechenden Raum von einem Raum zu unterscheiden. Verwenden Sie für diese Zeichen definitiv Entitäten.
Verwenden Sie für Zeichen, die visuell leicht zu verstehen sind (wie die obigen chinesischen Beispiele), UTF-8, wenn Sie möchten.
quelle
Persönlich mache ich alles in utf-8 seit langer Zeit, aber auf einer HTML-Seite müssen Sie immer kaufmännisches Und (&), größer als (>) und kleiner als (<) Zeichen, in ihre äquivalenten Entitäten & amp; konvertieren. & gt; und & lt;
Wenn Sie beabsichtigen, mit utf-8-Text zu programmieren, sollten Sie einige Dinge beachten.
quelle
Entitäten können Ihnen Kompatibilität mit hirntoten Clients bieten, die Codierungen nicht richtig verstehen. Ich glaube nicht, dass dies aktuelle Browser einschließt, aber Sie wissen nie, welche anderen Arten von Programmen Sie treffen könnten.
Nützlicher ist jedoch, dass HTML-Entitäten Sie vor Ihren eigenen Fehlern schützen: Wenn Sie etwas auf dem Server falsch konfigurieren und am Ende eine Seite mit einem HTTP-Header bereitstellen, der dies anzeigt,
ISO-8859-1
und einemMETA
Tag, das diesUTF-8
anzeigt, zumindest Ihren & mdash; es wird immer funktionieren.quelle
&mdash
Wenn die Header falsch konfiguriert sind, wird es schwieriger , ein Problem zu erkennen.HTML-Entitäten sind nützlich, wenn Sie Inhalte generieren möchten, die (dynamisch) in Seiten mit (mehreren) unterschiedlichen Codierungen aufgenommen werden sollen. Zum Beispiel haben wir White-Label-Inhalte, die sowohl in ISO-8859-1- als auch in UTF-8-codierten Webseiten enthalten sind ...
Wenn die Konvertierung von Zeichensätzen von / nach UTF-8 kein so großes, unzuverlässiges Durcheinander wäre (Sie stolpern immer über einige Zeichen und einige Tools, die nicht richtig konvertiert werden), wäre die Standardisierung auf UTF-8 der richtige Weg.
quelle
Wenn Ihre Seiten in utf-8 korrekt codiert sind, sollten Sie keine HTML-Entitäten benötigen. Verwenden Sie einfach die gewünschten Zeichen direkt.
quelle
Alle vorherigen Antworten sind für mich sinnvoll.
Außerdem: Dies hängt hauptsächlich von dem Editor ab, den Sie verwenden möchten, und von der Dokumentensprache. Eine Mindestanforderung für den Editor ist, dass er die Dokumentensprache unterstützt. Das heißt, wenn Ihr Text auf Japanisch ist, achten Sie darauf, keinen Editor zu verwenden, der sie nicht anzeigt (dh keine Entitäten für das Dokument selbst). Wenn es Englisch ist, können Sie sogar einen alten vim-ähnlichen Editor verwenden und Entitäten nur für die relativ seltenen & copy; und Freunde. Natürlich: & gt; für> und andere HTML-Specials benötigen noch Escapezeichen. Aber selbst mit den anderen Latein-1-Sprachen (Deutsch, Französisch usw.) ist das Schreiben von ä ein Schmerz, wenn Sie wissen, wo ...
Außerdem schreibe ich persönlich Entitäten für unsichtbare Zeichen und solche, die Standard-ASCII ähneln und daher leicht zu verwechseln sind. Zum Beispiel gibt es u1173 (sieht in einigen Zeichensätzen wie ein Bindestrich aus) oder u1175, das wie die vertikale Leiste aussieht. Ich würde auf jeden Fall Entitäten für diese verwenden.
quelle