Frage

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 sollte ich nur den UTF-8-Charakter verwenden. Zum Beispiel,

  • EM Dash (-, &emdash;)
  • Et-Zeichen (&, &)
  • 3/4 Bruch (¾, ¾)

Bitte schütteln Sie dieses Problem. Es wird geschätzt.

War es hilfreich?

Lösung

Sie müssen im Allgemeinen keine HTML -Charakterentitäten verwenden, wenn Ihr Editor Unicode unterstützt. Entitäten können nützlich sein, wenn:

  • Ihre Tastatur unterstützt nicht den Charakter, den Sie eingeben müssen. Zum Beispiel haben viele Tastaturen kein Em-Cash oder das Copyright-Symbol.
  • Ihr Redakteur unterstützt Unicode nicht (sehr häufig vor einigen Jahren, aber wahrscheinlich nicht heute).
  • Sie möchten es in der Quelle explizit machen, was passiert. Zum Beispiel die   Code ist klarer als der entsprechende Weißraum.
  • Sie müssen HTML -Sonderzeichen wie entkommen <, &, oder ".

Andere Tipps

Basierend auf den Kommentaren, die ich erhalten habe, habe ich mir ein wenig weiter untersucht. Es scheint das derzeit Die beste Praxis besteht darin, mit HTML-Entitäten zu verzichten und stattdessen das tatsächliche UTF-8-Zeichen zu verwenden. Die aufgeführten Gründe sind wie folgt:

  1. UTF-8-Kodierungen sind für diejenigen, die verstehen, was der Charakter bedeutet, einfacher zu lesen und zu bearbeiten, und wissen, wie man es eingibt.
  2. UTF-8-Kodierungen sind genauso unverständlich wie die HTML-Entitätskodierungen für diejenigen, die sie nicht verstehen, aber sie haben den Vorteil, als besondere Charaktere und nicht als schwer zu verstehen, Dezimal- oder Hex-Codierungen zu verstehen.

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 am hilfreichsten waren:

Von dem UTF-8: Das Geheimnis der Charaktercodierung Artikel:

Wikipedia ist eine großartige Fallstudie für eine Anwendung, die ursprünglich ISO-8859-1 verwendete, aber auf UTF-8 umgestellt wurde, als es viel zu umständlich wurde, um Fremdsprachen zu unterstützen. Bots werden jetzt tatsächlich Artikel durchlaufen und Charakterentitäten in ihre entsprechenden realen Charaktere umwandeln, um die Benutzerfreundlichkeit und Suchbarkeit zu erhalten.

Dieser Artikel gibt auch ein schönes Beispiel mit chinesischer Codierung. Hier ist das abgekürzte Beispiel für Faulheit:

UTF-8:

這兩個字是甚麼意思

HTML -Entitäten:

&#36889;&#20841;&#20491;&#23383;&#26159;&#29978;&#40636;&#24847;&#24605;

Die UTF-8- und HTML-Entitätskodierungen sind für mich jedoch bedeutungslos, aber Zumindest die UTF-8-Codierung ist als Fremdsprache erkennbar, und es wird in einer Bearbeitungsbox ordnungsgemäß gerendert. In dem Artikel wird Folgendes über die HTML-Entitätskodierversion aufgeführt:

Äußerst unpraktisch für diejenigen von uns, die tatsächlich wissen, welche Charaktereinheiten sind, für arme Benutzer, die dies nicht tun, völlig unverständlich! Selbst die etwas benutzerfreundlicheren, "verständlichen" Charaktereinheiten wie θ lassen Benutzer, die nicht daran interessiert sind, HTML zu lernen, den Kopf kratzen. Wenn sie hingegen θ in einem Bearbeitungsfeld sehen, wissen sie, dass es sich um einen besonderen Charakter handelt, und behandeln es entsprechend, auch wenn sie nicht wissen, wie man diesen Charakter selbst schreibt.

Wie andere bemerkt haben, müssen Sie noch HTML-Entitäten für reservierte XML-Zeichen (Ampers und weniger als, größer als) verwenden.

Ich würde UTF-8 nicht für Zeichen verwenden, die leicht visuell verwechselt werden. Zum Beispiel ist es schwierig, einen EMDash von einem Minus oder insbesondere von einem nicht sprechenden Raum von einem Raum zu unterscheiden. Verwenden Sie für diese Charaktere definitiv Entitäten.

Für Zeichen, die leicht visuell verstanden werden (z. B. die chinesischen Beispiele oben), verwenden Sie UTF-8, wenn Sie möchten.

Persönlich mache ich alles in UTF-8 seit langer Zeit, aber auf einer HTML-Seite müssen Sie immer Ampersanden (&) umwandeln, größer als (>) und weniger als (<) Charaktere in ihre Äquivalenteinheiten &,> und <

Wenn Sie beabsichtigen, mit dem UTF-8-Text etwas Programmierung zu programmieren, gibt es ein paar Dinge, auf die Sie achten müssen.

  • XML benötigt einige zusätzliche Linien, um bei der Verwendung von Entitäten zu validieren.
  • Einige Bibliotheken spielen nicht gut mit UTF-8 mit. Zum Beispiel hat PHP in einigen Linux-Verteilungen in ihren regulären Expressionsbibliotheken die volle Unterstützung für UTF-8 gesunken.
  • Es ist schwieriger, die Anzahl der Zeichen in einem Text zu begrenzen, der HTML -Entitäten verwendet, da eine einzelne Entität viele Zeichen verwendet. Außerdem besteht immer das Risiko, das Unternehmen in zwei Hälften zu schneiden.

Entitäten können Ihnen eine gewisse Kompatibilität mit hirntoten Kunden kaufen, die Codings nicht richtig verstehen. Ich glaube nicht, dass dies aktuelle Browser umfasst, aber Sie wissen nie, welche anderen Arten von Programmen Sie aufschlagen 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 bedienen, der besagt, dass es sich ISO-8859-1 und ein META Tag, das besagt, dass es ist UTF-8, Zumindest werden Ihre - es immer funktionieren.

HTML -Entitäten sind nützlich, wenn Sie Inhalte generieren möchten, die (dynamisch) in Seiten mit (mehreren) verschiedenen Codierungen aufgenommen werden sollen. Zum Beispiel haben wir White Label-Inhalte, die sowohl in ISO-8859-1 als auch in Codierte Webseiten von UTF-8 enthalten sind ...

Wenn die Charakter-Set-Konvertierung von/zu UTF-8 nicht ein so großes unzuverlässiges Durcheinander war (Sie stolpern immer über einige Charaktere und einige Tools, die nicht richtig konvertieren), wäre die Standardisierung von UTF-8 der richtige Weg.

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.

Alle vorherigen Antworten machen für mich Sinn.

Zusätzlich: Es hängt hauptsächlich von dem Editor ab, den Sie verwenden möchten, und die Dokumentsprache. Als Mindestanforderung für den Editor wird die Dokumentensprache unterstützt. Das heißt, wenn Ihr Text auf Japanisch ist, achten Sie darauf, einen 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 Herausgeber verwenden und Entitäten nur für den Verwandten selten © und Freunde verwenden. Natürlich:> für> und andere HTML-Spezialversuche brauchen noch Flucht. Aber selbst mit den anderen Latein-1-Sprachen (Deutsch, Französisch usw.) ist es ein Schmerz, in dem Sie wissen, wo ...

Darüber hinaus schreibe ich persönlich Entitäten für unsichtbare Charaktere und diejenigen, die Standard-ASCII ähnlich aussehen und daher leicht zu verwechseln sind. Zum Beispiel gibt es U1173 (aussehen wie ein Armaturenbrett in einigen Zeichengrundsätzen) oder U1175, die wie die vertikale Balken aussieht. Ich würde auf jeden Fall Entitäten für diejenigen verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top