Unicode und HTML

Webseiten authored das Verwenden der Hypertext-Preiserhöhungssprache (HTML) können mehrsprachigen Text enthalten, der mit Unicode universale Codierung vertreten ist. Der Schlüssel zur Beziehung zwischen Unicode und HTML ist die Beziehung zwischen der "Dokumentencodierung", die den Satz von Charakteren definiert, die in einem HTML-Dokument da sein können und Zahlen ihnen und der "Außencharakter-Verschlüsselung" zuteilen oder "charset" gepflegt hat, ein gegebenes Dokument als eine Folge von Bytes zu verschlüsseln.

RFC 1866 (das anfängliche HTML 2.0 Standard) die Dokumentencodierung wurde als ISO-8859-1 definiert. Es wurde zu ISO 10646 erweitert (der zu Unicode grundsätzlich gleichwertig ist) vor RFC 2073. Es ändert sich zwischen Dokumenten von verschiedenen Sprachen oder geschaffen auf verschiedenen Plattformen nicht. Die Außencharakter-Verschlüsselung wird vom Autor des Dokumentes (oder die Software der Autor-Gebrauch gewählt, um das Dokument zu schaffen), und bestimmt, wie die Bytes gepflegt haben, die Dokumentenkarte Charakteren von der Dokumentencodierung zu versorgen und/oder zu übersenden. Charaktere nicht Gegenwart in der gewählten Außencharakter-Verschlüsselung können durch Charakter-Entitätsverweisungen vertreten werden.

Die Beziehung zwischen Unicode und HTML neigt dazu, ein schwieriges Thema für viele Computerfachleuten, Dokumentenautoren und Webbenutzer gleich zu sein. Die genaue Darstellung des Textes in Webseiten aus den verschiedenen natürlichen Sprachen und Schreiben-Systemen wird durch die Details von Charakter-Verschlüsselung, Preiserhöhungssprachsyntax, Schriftart und unterschiedlichen Niveaus der Unterstützung durch WWW-Browser kompliziert.

HTML-Dokumentencharaktere

Webseiten sind normalerweise HTML oder XHTML Dokumente. Beide Typen von Dokumenten bestehen an einem grundsätzlichen Niveau Charaktere, die Grapheme und einem Graphem ähnliche Einheiten sind, die dessen unabhängig sind, wie sie in Computerlagerungssystemen und Netzen erscheinen.

Ein HTML-Dokument ist eine Folge von Charakteren von Unicode. Mehr spezifisch ist HTML 4.0 Dokumente erforderlich, aus Charakteren in der HTML-Dokumentencodierung zu bestehen: Ein Charakter-Repertoire, worin jeder Charakter ein einzigartiger Codepunkt der natürlichen Zahl zugeteilt wird. Dieser Satz wird im HTML 4.0 DTD definiert, der auch die Syntax gründet (zulässige Folgen von Charakteren), der ein gültiges HTML-Dokument erzeugen kann. Die HTML-Dokumentencodierung für das HTML 4.0 besteht aus die meisten, aber nicht allen aus den Charakteren, die gemeinsam von Unicode und ISO/IEC 10646 definiert sind: Universal Character Set (UCS).

Wie HTML-Dokumente ist ein XHTML Dokument eine Folge von Charakteren von Unicode. Jedoch ist ein XHTML Dokument ein XML Dokument, das sich während es eine ausführliche "" Charakter-Dokumentenschicht der Abstraktion nicht hat, dennoch auf eine ähnliche Definition von erlaubten Charakteren verlässt, die am meisten, aber nicht alle der Unicode/UCS Charakter-Definitionen bedecken. Die Sätze, die durch das HTML und XHTML/XML verwendet sind, sind ein bisschen verschieden, aber diese Unterschiede haben wenig Wirkung auf den durchschnittlichen Dokumentenautor.

Unabhängig von, ob das Dokument HTML oder XHTML, wenn versorgt, auf einem Dateisystem oder übersandt über ein Netz ist, werden die Charaktere des Dokumentes als eine Folge von Bit-Oktetten (Bytes) gemäß einer besonderen Charakter-Verschlüsselung verschlüsselt. Diese Verschlüsselung kann entweder ein Unicode Transformationsformat wie UTF-8 sein, der jeden Charakter von Unicode oder eine Vermächtnis-Verschlüsselung wie Windows 1252 direkt verschlüsseln kann, das nicht kann. Jedoch, selbst wenn das Verwenden encodings, die alle Charaktere von Unicode, das verschlüsselte Dokument nicht unterstützen, von numerischen Charakter-Verweisungen Gebrauch machen kann. Zum Beispiel wird verwendet, um einen Lächeln-Gesichtscharakter in der Codierung von Unicode anzuzeigen.

Charakter-Verschlüsselung

Um alle Charaktere von Unicode zu unterstützen, ohne numerische Charakter-Verweisungen aufzusuchen, muss eine Webseite eine Verschlüsselung haben, die alle Unicode bedeckt. Das populärste ist UTF-8, wo die ASCII Charaktere, wie englische Briefe, Ziffern und einige andere allgemeine Charaktere unverändert gegen ASCII bewahrt werden. Das macht HTML-Code (solcher als <br> und </div>) unverändert im Vergleich zu ASCII. Charaktere außerhalb der ASCII-Reihe werden in 2-4 Bytes versorgt. Es ist auch möglich, UTF-16 zu verwenden, wo die meisten Charaktere als zwei Bytes mit dem Verändern endianness versorgt werden, der durch moderne Browser unterstützt, aber weniger allgemein verwendet wird.

Numerische Charakter-Verweisungen

Um um die Beschränkungen des Vermächtnisses encodings zu arbeiten, wird HTML solch entworfen, dass es möglich ist, Charaktere von ganzem Unicode innerhalb eines HTML-Dokumentes durch das Verwenden einer numerischen Charakter-Verweisung zu vertreten: Eine Folge von Charakteren, die ausführlich den Codepunkt von Unicode des Charakters darlegen, der wird vertritt. Eine Charakter-Verweisung nimmt die Form an, wo entweder eine Dezimalzahl für den Codepunkt von Unicode oder eine hexadecimal Zahl ist, in welchem Fall es dadurch vorbefestigt werden muss. Die Charaktere, die die numerische Charakter-Verweisung zusammensetzen, sind in jeder Verschlüsselung allgemein wiederpräsentabel, die für den Gebrauch im Internet genehmigt ist.

Zum Beispiel, Unicode codieren Punkt wie U+5408, der einem besonderen chinesischen Charakter entspricht, zu einer Dezimalzahl umgewandelt werden muss, die dadurch vorangegangen ist, und durch, wie das gefolgt ist: der das erzeugt:  (wenn es wie kein chinesischer Charakter aussieht, sieh).

Die Unterstützung für hexadecimal in diesem Zusammenhang ist neuer, so könnten ältere Browser in Problemen Verweise anbringen lassen, die Charaktere mit hexadecimal Zahlen zeigen —, aber sie werden wahrscheinlich ein Problem haben, Charaktere von Unicode über dem Codepunkt 255 irgendwie zeigend. Um bessere Vereinbarkeit mit älteren Browsern zu sichern, ist es noch eine übliche Praxis, um den Hexadecimal-Codepunkt in einen dezimalen Wert (zum Beispiel statt) umzuwandeln.

Genannte Charakter-Entitäten

IM HTML gibt es einen Standardsatz von 252 genannten Charakter-Entitäten für Charaktere - einige üblich, einige verdunkeln - die entweder im bestimmten Charakter encodings nicht gefunden werden oder Preiserhöhung sind, die in einigen Zusammenhängen (zum Beispiel Winkelklammern und Anführungszeichen) empfindlich ist. Obwohl in jedem Charakter von Unicode durch seinen numerischen Codepunkt Verweise angebracht werden kann, ziehen einige HTML-Dokumentenautoren es vor, diese genannten Entitäten statt dessen wo möglich zu verwenden, weil sie weniger rätselhaft sind und durch frühe Browser besser unterstützt wurden.

Charakter-Entitäten können in ein HTML-Dokument über den Gebrauch von Entitätsverweisungen eingeschlossen werden, die die Form annehmen, wo der Name der Entität ist. Zum Beispiel, viel wie oder, vertritt: Die em schleudern Charakter "-", selbst wenn die verwendete Charakter-Verschlüsselung diesen Charakter nicht enthält.

Für die volle Liste, sieh: Liste von XML und HTML-Charakter-Entitätsverweisungen.

Charakter-Verschlüsselungsentschluss

Um HTML richtig zu bearbeiten, muss ein WWW-Browser feststellen, welche Charaktere von Unicode durch die verschlüsselte Form eines HTML-Dokumentes vertreten werden. Um das zu tun, muss der WWW-Browser das wissen, welche Verschlüsselung verwendet wurde.

Verschlüsselung der Information

Wenn ein Dokument über eine PANTOMIME-Nachricht oder einen Transport übersandt wird, der PANTOMIME-Inhalt-Typen wie eine HTTP Antwort verwendet, kann die Nachricht der Verschlüsselung über einen Kopfball des Zufriedenen Typs, solcher als Zeichen geben. Andere Außenmittel, Verschlüsselung zu erklären, werden erlaubt, aber selten verwendet. Wenn das Dokument eine Verschlüsselung von Unicode verwendet, könnte das Verschlüsselungsinfo auch in der Form eines Byte-Ordnungszeichens da sein. Schließlich kann die Verschlüsselung über die HTML-Syntax erklärt werden. Für die Anordnung dann nicht weniger als wird die Seite in einer Erweiterung von ASCII verschlüsselt (wie UTF-8, und so, nicht, wenn die Seite UTF-16 verwendet), kann ein Element, wie oder (mit HTML5 anfangend), verwendet werden. Für HTML-Seiten in Fortsetzungen veröffentlicht als XML dann sollen sich Behauptungsoptionen entweder auf den Verschlüsselungsverzug verlassen (der für XML Dokumente UTF-8) ist, oder einen XML Verschlüsselung der Behauptung zu verwenden. Das Meta-Attribut spielt keine Rolle im als XML gedienten HTML.

Verschlüsselung des Verzugs

Ein Verschlüsselungsverzug gilt, wenn es keine äußerliche oder innere Verschlüsselungsbehauptung und auch kein Byte-Ordnungszeichen gibt. Während der Verschlüsselungsverzug für HTML-Seiten gedient hat, weil XML erforderlich ist, UTF-8, der Verschlüsselungsverzug für eine regelmäßige Webseite zu sein (der ist: Für HTML-Seiten in Fortsetzungen veröffentlicht als) ändert sich abhängig von der Lokalisierung des Browsers. Für ein System aufgestellt hauptsächlich für westeuropäische Sprachen wird es allgemein Windows 1252 sein. Für den russischen Schauplatz ist der Verzug normalerweise Windows 1251. Für einen Browser von einer Position, wo Vermächtnis-Mehrbyte-Charakter encodings überwiegend sind, wird eine Form der Autoentdeckung wahrscheinlich angewandt.

Verschlüsselung von Tendenzen

Wegen des Vermächtnisses von 8-Bit-Textdarstellungen auf Programmiersprachen und Betriebssystemen und dem Wunsch zu vermeiden, Benutzer das Bedürfnis zu belasten, die Nuancen der Verschlüsselung zu verstehen, sind viele von HTML-Autoren verwendete Textaufbereiter unfähig oder widerwillig, eine Wahl von encodings anzubieten, wenn sie Dateien zur Platte sparen, und erlauben häufig Eingang von Charakteren außer einer sehr beschränkten Reihe nicht sogar. Folglich wissen viele HTML-Autoren nicht, Probleme zu verschlüsseln, und können keine Idee haben, was die Verschlüsselung ihrer Dokumente wirklich verwendet. Missverständnisse, wie der Glaube, dass die Verschlüsselungsbehauptung eine Änderung in der wirklichen Verschlüsselung betrifft (wohingegen es wirklich gerade ein Etikett ist, das ungenau sein konnte), sind auch ein Grund für diese Redakteur-Einstellung. Ein anderer Faktor, der in derselben Richtung beiträgt, ist die Ankunft von UTF-8 — der außerordentlich das Bedürfnis nach anderem encodings verringert, und so moderne Redakteure dazu neigen, wie empfohlen, durch die HTML5 Spezifizierung zu UTF-8 im Verzug zu sein.

Byte-Ordnung mark/Unicode das Schnüffeln

Sowohl für serializations des HTML (zufriedener Typ "Text/HTML" als auch für Inhalt/Typ "application/xhtml+xml") ist das Byte-Ordnungszeichen (BOM) eine wirksame Weise, Verschlüsselungsinformation innerhalb eines HTML-Dokumentes zu übersenden. Für UTF-8 ist der BOM fakultativ, während es ein Müssen für den UTF-16 und den UTF-32 encodings ist. (Bemerken Sie: UTF-16 und UTF-32 ohne den BOM sind unter verschiedenen Namen formell bekannt, sie sind verschiedener encodings, und braucht so eine Form, Behauptung zu verschlüsseln - sieh UTF-16BE, UTF-16LE, UTF-32LE und UTF-32BE.) Der Gebrauch des BOM Charakters (U+FEFF) bedeutet, dass sich die Verschlüsselung automatisch zu jeder in einer Prozession gehenden Anwendung erklärt. Verarbeitung von Anwendungen muss nur nach einer Initiale 0x0000FEFF, 0xFEFF oder 0xEFBBBF im Byte-Dampf suchen, um das Dokument als UTF-32, UTF-16 oder UTF-8 verschlüsselt beziehungsweise zu identifizieren. Keine zusätzlichen metadata Mechanismen sind für diese encodings erforderlich, da das Zeichen der Byte-Ordnung die ganze Information einschließt, die notwendig ist, um Anwendungen zu bearbeiten. In den meisten Verhältnissen wird der Zeichen-Charakter der Byte-Ordnung durch das Redigieren von Anwendungen getrennt von den anderen Charakteren behandelt, also gibt es wenig Gefahr eines Autors, der umzieht oder sonst das Byte-Ordnungszeichen ändert, um die falsche Verschlüsselung anzuzeigen (wie es geschehen kann, wenn die Verschlüsselung in der englischen/lateinischen Schrift erklärt wird). Wenn das Dokument an einem Zeichen der Byte-Ordnung, die Tatsache Mangel hat, dass der erste nichtleere druckfähige Charakter in einem HTML-Dokument "in Fortsetzungen veröffentlicht werden soll, Handbuch überreiten kann für alle Dokumente oder nur diejenigen gelten, für die die Verschlüsselung durch das Schauen auf Behauptungen und/oder Byte-Muster nicht festgestellt werden kann. Die Tatsache, dass das Handbuch überreitet, ist da, und weit verwendet hindert die Adoption von genauen Verschlüsselungsbehauptungen im Web; deshalb wird das Problem wahrscheinlich andauern. Aber bemerken Sie, dass Internet Explorer, Chrom und Safari — sowohl für XML als auch für serializations — der Verschlüsselung nicht erlauben, überritten zu werden, wann auch immer die Seite den BOM einschließt.

Für HTML-Dokumente, die mit dem bevorzugten XML-Etikett in Fortsetzungen veröffentlicht sind — überreitet manuelle Verschlüsselung wird nicht erlaubt. Die Verschlüsselung solch eines XML Dokumentes zu überreiten, würde bedeuten, dass das das Dokument hat aufgehört, XML zu sein, weil es ein tödlicher Fehler für XML Dokumente ist, um eine Verschlüsselungsbehauptung mit feststellbaren Fehlern zu haben. Zurzeit, Gecko-Browser wie Firefox, bleiben Sie zu dieser Regel, wohingegen der Hauptteil der anderen allgemeinen Browser, die HTML als XML, wie Browser von Webkit (Chrom/Safari) unterstützen — gegen die XML Spezifizierung tut — erlauben der Verschlüsselung von XHTML Dokumenten, manuell überritten zu werden.

WWW-Browser-Unterstützung

Viele Browser sind nur dazu fähig, eine kleine Teilmenge des vollen Repertoires von Unicode zu zeigen. Hier ist, wie Ihr Browser verschiedene Codepunkte von Unicode zeigt:

Einige WWW-Browser, wie Mozilla Firefox, Oper, Safari und Internet Explorer (von der Version 7 auf), sind im Stande, mehrsprachige Webseiten durch die intelligente Auswahl einer Schriftart zu zeigen, um jeden individuellen Charakter auf der Seite zu zeigen. Sie werden jede Mischung von Blöcken von Unicode richtig zeigen, so lange passende Schriftarten im Betriebssystem da sind.

Ältere Browser wie Netscape-Navigator 4.77 und Internet Explorer 6 können nur Text zeigen, der durch die aktuelle Schriftart unterstützt ist, die mit der Charakter-Verschlüsselung der Seite vereinigt ist, und können numerische Charakter-Verweisungen als seiend Verweisungen missdeuten, um Werte innerhalb der aktuellen Charakter-Verschlüsselung, aber nicht Verweisungen auf Codepunkte von Unicode zu codieren. Wenn Sie solch einen Browser verwenden, ist es unwahrscheinlich, dass Ihr Computer alle jene Schriftarten hat, oder dass der Browser alle verfügbaren Schriftarten auf derselben Seite verwenden kann. Infolgedessen wird der Browser den Text in den Beispielen oben richtig nicht zeigen, obwohl es eine Teilmenge von ihnen zeigen kann. Weil sie gemäß dem Standard aber verschlüsselt werden, werden sie richtig auf jedem System zeigen, das entgegenkommend ist und wirklich die verfügbaren Charaktere hat. Weiter werden jene Charakter-Vornamen für den Gebrauch in genannten Entitätsverweisungen wahrscheinlich allgemeiner verfügbar sein als andere.

Um Charaktere außerhalb des Grundlegenden Mehrsprachigen Flugzeugs, wie der gotische Brief faihu zu zeigen, der Variante des runischen Briefs Fehu im Tisch oben ist, brauchen einige Systeme (wie Windows 2000) manuelle Anpassungen ihrer Einstellungen.

Frequenz des Gebrauchs

Gemäß inneren Daten vom Webindex von Google im Dezember 2007 ist der UTF-8 Unicode Verschlüsselung die am häufigsten verwendete Verschlüsselung auf Webseiten geworden, sowohl ASCII (die Vereinigten Staaten) als auch 8859-1/1252 (Westeuropäer) einholend.

Siehe auch

Außenverbindungen

sind

Source is a modification of the Wikipedia article Unicode and HTML, licensed under CC-BY-SA. Full list of contributors here.
Bombardierung des Vereinigte Staaten Schiffes Cole / Ultraviolett
Impressum & Datenschutz