Numerische Zeichenreferenz
A Numerische Zeichenreferenz (Ncr) ist üblich Markup Konstrukt verwendet in SGML und von SGML abgeleitete Markupsprachen wie z. Html und Xml. Es besteht aus einer kurzen Folge von Figuren Das repräsentiert wiederum ein einzelnes Zeichen. Seit Webgml, Xml und HTML 4die Codepunkte der Universeller Charakter -Set (Ucs) von Unicode werden verwendet. NCRs werden normalerweise verwendet, um Zeichen darzustellen, die nicht sind direkt codierbar In einem bestimmten Dokument (zum Beispiel, da es sich um internationale Charaktere handelt, die nicht in den verwendeten 8-Bit-Zeichensatz passen, oder weil sie in der Sprache eine spezielle syntaktische Bedeutung haben). Wenn das Dokument von einem markup-bewussten Leser interpretiert wird, wird jeder NCR so behandelt, als wäre es der Charakter, den es darstellt.
Beispiele
In SGML, HTML und XML finden Sie die folgenden gültigen numerischen Zeichenreferenzen für das griechische Großbuchstaben Sigma
Unicode -Zeichen | Numerische Basis | Numerische Referenz in Markup | Wirkung |
---|---|---|---|
U+03A3 | Dezimal | Σ | Σ |
U+03A3 | Dezimal | Σ | Σ |
U+03A3 | Hexadezimal | Σ | Σ |
U+03A3 | Hexadezimal | Σ | Σ |
U+03A3 | Hexadezimal | Σ | Σ |
In SGML, HTML und XML sind die folgenden gültigen numerischen Zeichenreferenzen für das lateinische Großbuchstaben AE
Unicode -Zeichen | Numerische Basis | Numerische Referenz in Markup | Wirkung |
---|---|---|---|
U+00C6 | Dezimal | Æ | Æ |
U+00C6 | Hexadezimal | Æ | Æ |
In SGML, HTML und XML sind die folgenden gültigen numerischen Zeichenreferenzen für den lateinischen kleinen Buchstaben Sharp S ß
Unicode -Zeichen | Numerische Basis | Numerische Referenz in Markup | Wirkung |
---|---|---|---|
U+00DF | Dezimal | ß | ß |
U+00DF | Hexadezimal | ß | ß |
Liste der numerischen Zeichenreferenzen für das druckbare ASCII Figuren:
Unicode -Zeichen | Charakter Bezug (Dezimal) | Charakter Bezug (hexadezimal) | Wirkung |
---|---|---|---|
U+0020 |   |   | (Platz) |
U+0021 | ! | ! | ! |
U+0022 | " | " | " |
U+0023 | # | # | # |
U+0024 | $ | $ | $ |
U+0025 | % | % | % |
U+0026 | & | & | & |
U+0027 | ' | ' | '' |
U+0028 | ( | ( | ( |
U+0029 | ) | ) | )) |
U+002a | * | * | * |
U+002B | + | + | + |
U+002C | , | , | Anwesend |
U+002d | - | - | - |
U+002E | . | . | . |
U+002f | / | / | / |
U+0030 | 0 | 0 | 0 |
U+0031 | 1 | 1 | 1 |
U+0032 | 2 | 2 | 2 |
U+0033 | 3 | 3 | 3 |
U+0034 | 4 | 4 | 4 |
U+0035 | 5 | 5 | 5 |
U+0036 | 6 | 6 | 6 |
U+0037 | 7 | 7 | 7 |
U+0038 | 8 | 8 | 8 |
U+0039 | 9 | 9 | 9 |
U+003a | : | : | : |
U+003B | ; | ; | ; |
U+003c | < | < | < |
U+003d | = | = | = |
U+003E | > | > | > |
U+003f | ? | ? | ? |
U+0040 | @ | @ | @ |
U+0041 | A | A | EIN |
U+0042 | B | B | B |
U+0043 | C | C | C |
U+0044 | D | D | D |
U+0045 | E | E | E |
U+0046 | F | F | F |
U+0047 | G | G | G |
U+0048 | H | H | H |
U+0049 | I | I | ich |
U+004a | J | J | J |
U+004B | K | K | K |
U+004c | L | L | L |
U+004D | M | M | M |
U+004E | N | N | N |
U+004f | O | O | Ö |
U+0050 | P | P | P |
U+0051 | Q | Q | Q |
U+0052 | R | R | R |
U+0053 | S | S | S |
U+0054 | T | T | T |
U+0055 | U | U | U |
U+0056 | V | V | V |
U+0057 | W | W | W |
U+0058 | X | X | X |
U+0059 | Y | Y | Y |
U+005a | Z | Z | Z |
U+005b | [ | [ | [ |
U+005c | \ | \ | \ |
U+005d | ] | ] | ] |
U+005E | ^ | ^ | ^ |
U+005f | _ | _ | _ |
U+0060 | ` | ` | '' |
U+0061 | a | a | a |
U+0062 | b | b | b |
U+0063 | c | c | c |
U+0064 | d | d | d |
U+0065 | e | e | e |
U+0066 | f | f | f |
U+0067 | g | g | g |
U+0068 | h | h | h |
U+0069 | i | i | ich |
U+006a | j | j | j |
U+006B | k | k | k |
U+006c | l | l | l |
U+006D | m | m | m |
U+006E | n | n | n |
U+006f | o | o | Ö |
U+0070 | p | p | p |
U+0071 | q | q | q |
U+0072 | r | r | r |
U+0073 | s | s | s |
U+0074 | t | t | t |
U+0075 | u | u | u |
U+0076 | v | v | v |
U+0077 | w | w | w |
U+0078 | x | x | x |
U+0079 | y | y | y |
U+007a | z | z | z |
U+007B | { | { | { |
U+007c | | | | | - |
U+007d | } | } | } |
U+007E | ~ | ~ | ~ |
Diskussion
Markup -Sprachen sind typischerweise in Bezug auf UCs oder Unicode -Zeichen definiert. Das heißt, ein Dokument besteht in seiner grundlegendsten Abstraktionsebene einer Abfolge von Zeichen, die abstrakte Einheiten sind, die unabhängig von jedem existieren Codierung.
Idealerweise, wenn die Zeichen eines Dokuments, das eine Markup -Sprache verwendet BitsDie verwendete Codierung wird eines sein, das die Darstellung jedes einzelnen Charakters im Dokument, wenn nicht im gesamten Unicode, direkt als bestimmte Bitsequenz unterstützt.
Manchmal sind jedoch aus Gründen der Bequemlichkeit oder aufgrund technischer Einschränkungen Dokumente mit einer Codierung codiert, die einige Zeichen nicht direkt darstellen können. Zum Beispiel die weit verbreiteten Kodierungen basierend auf ISO 8859 kann höchstens 256 einzigartige Zeichen als 8-Bit darstellen Byte jeder.
Dokumente dürfen in der Praxis selten mehr als eine interne Codierung verwenden, sodass die Verantwortung in der Regel auf der Markup -Sprache liegt, den Dokumentautoren die Möglichkeit zu geben, unverzichtbare Zeichen in Bezug auf kodierbare Zeichen auszudrücken. Dies geschieht im Allgemeinen durch irgendeine Art von "Flucht" -Mechanismus.
Mit den SGML-basierten Markup-Sprachen können Dokumenteautoren spezielle Zeichensequenzen aus dem ASCII-Bereich (die ersten 128 Codepunkte von Unicode) verwenden, um sie darzustellen oder HinweisJeder Unicode -Charakter, unabhängig davon, ob der dargestellte Charakter direkt in der Codierung des Dokuments verfügbar ist. Diese besonderen Sequenzen sind Charakterreferenzen.
Zeichenreferenzen, die auf den UCs oder Unicode des Referenzzeichens basieren Codepunkt werden genannt numerisch Charakterreferenzen. In HTML 4 und in allen Versionen von Xhtml und XML kann der Codepunkt entweder als a ausgedrückt werden Dezimal (Basis 10) Nummer oder als hexadezimal (Basis 16) Nummer. Die Syntax ist wie folgt:
Zeichen U+0026 (Et-Zeichen), gefolgt von Zeichen U+0023 (Nummernschild), gefolgt von einer der folgenden Entscheidungen:
- eine oder mehrere Dezimalstellen Null (U+0030) bis neun (U+0039); oder
- Zeichen U+0078 ("x"), gefolgt von einer oder mehreren Hexadezimalstellen, die Null (U+0030) bis neun (U+0039), lateinischer Kapitalbuchstaben A (U+0041) bis F (U+0046) sind, und lateinischer kleiner Buchstaben A (U+0061) bis F (U+0066);
Alle gefolgt von Charakter U+003B (Semikolon). Ältere Versionen von HTML legten die hexadezimale Syntax nicht zu.
Die Zeichen, die eine numerische Zeichenreferenz umfassen, können in jeder Charakter -Codierung dargestellt werden, die heute in Computer und Telekommunikation verwendet wird. Es besteht also kein Risiko, dass die Referenz selbst unverzichtbar ist.
Es gibt eine andere Art von Charakterreferenz namens a Charakterentitätsreferenz, wodurch ein Zeichen mit einem Namen anstelle einer Nummer bezeichnet wird. (Die Benennung eines Charakters schafft a Charakter Einheit.) HTML definiert einige Charaktereinheiten, aber nicht viele; Alle anderen Zeichen können nur durch direkte Codierung oder Verwendung von NCRs aufgenommen werden.
Beschränkungen
Der durch ISO 10646 definierte universelle Zeichensatz ist der "Dokumentzeichensatz" von SGML, HTML 4, also standardmäßig jedes Zeichen in einem solchen Dokument und jedes Zeichen verwiesen In einem solchen Dokument muss sich in der UCS befinden.
Während die Syntax von SGML Verweise auf ungültige oder nicht zugewiesene Codepunkte nicht verbietet, wie z. , SGML-abgeleitete Markup-Sprachen wie HTML und XML können numerische Zeichenbeweise nur auf die Codepunkte beschränken, die Zeichen zugewiesen sind.
Einschränkungen können auch aus anderen Gründen gelten. Zum Beispiel in HTML 4, , was ein Hinweis auf einen nicht druckenden "Formfutter" -Kontrollzeichen ist, ist zulässig, da ein Form-Feed-Zeichen zulässig ist. In XML kann das Form -Feed -Zeichen jedoch nicht einmal durch Referenz verwendet werden.[1] Als ein weiteres Beispiel,
, was ein Hinweis auf ein anderes Steuerungszeichen ist, darf weder in HTML noch in XML verwendet oder referenziert werden, sondern wenn sie in HTML verwendet werden, wird es normalerweise nicht als Fehler von Webbrowsern gekennzeichnet - einige interpretieren es als Referenz als Referenz zu dem Zeichen, der durch den Codewert 128 in der dargestellt wird Windows-1252 Codierung aus Kompatibilitätsgründen. Dieser Charakter "€" muss als dargestellt werden als €
in einem Standard-konformen HTML-Code. Als weiteres Beispiel basierte XML 1.0 vor der Veröffentlichung von XML 1.0 Second Edition am 6. Oktober 2000 auf einer älteren Version von ISO 10646 und untersagte unter Verwendung von Zeichen über U+FFFD, außer in den Zeichendaten (U+10000) illegal. In XML 1.1 und neueren Ausgaben von XML 1.0 ist eine solche Referenz erlaubt, da das verfügbare Zeichenrepertoire ausdrücklich erweitert wurde.
Markupsprachen legen auch Einschränkungen dafür, wo Charakterreferenzen auftreten können.
Kompatibilitätsprobleme
In den ersten Versionen von SGML und Html, numerische Charakterreferenzen wurden in Bezug Unicode. Für lateinamerikanische Dokumente sind numerische Zeichen auf Zeichen zwischen X80 und X9F in diesen Dokumenten nicht korrekt gegen Zeichen Unicode, und muss wiederhergestellt werden. HTML -Standards vor HTML 4 Unterstützt nur Dokumente des westlichen lateinischen Skripts: Die Behandlung von Charakterreferenzen über #7F kann zwischen Anwendungen und nationalen Konventionen variieren.
Zum Beispiel, wie oben erwähnt, die korrekte numerische Zeichenreferenz für die Eurozeichen "€" U+20AC
beim Benutzen Unicode ist dezimal €
und Hexadezimal €
. Wenn jedoch Tools verwendet werden, die veraltete Implementierungen von HTML unterstützen, ist die Referenz
(Euro -Zeichen in der CP-1252 Codeseite) oder ¤
(Euro anzumelden ISO/IEC 8859-15) könnte funktionieren.
Als ein weiteres Beispiel, wenn ursprünglich ein Text erstellt wurde Makroman Zeichensatz, die links doppelte Zitat Marke “ wird mit dem Codepunkt XD2 dargestellt. Dies wird in einem System, das ein als UTF-8, ISO 8859-1 oder CP-1252 codiertes Dokument erwartet, nicht ordnungsgemäß angezeigt wird, wobei dieser Codepunkt durch den Brief besetzt ist Ò. Die korrekte numerische Zeichenreferenz für “ in HTML 4 und neuer ist “
, Weil U+201c ist sein UCS -Code. In einigen Systemen die Named Character Referenz “
Kann auch verfügbar sein.
Siehe auch
Verweise
- ^ "HTML 5.2: 8. Die HTML -Syntax". www.w3.org.