HTML-Elemente: Schriftzeichen
Details, Bearbeiten in Web-Editoren

zum Anfang der SeiteÜberblick Elemente

Schriftzeichen, die außergewöhnlich sind und nicht einfach eingetippt werden können, können als entities (beschriebenes Zeichen) im text-html-code gespeichert werden. Diese entities sind aber keine HTML-Elemente und werden daher auch nicht als tag mit < und > angegeben, sondern mit & und ; "maskiert".

Code Elementname original deutsche Übersetzung
&…; entity
(Mehrzahl: entities)
wird meist nicht übersetzt
wörtliche Übersetzung: Instanz, Funktionseinheit, aber auch im Sinne von Exemplar
http://de.wikipedia.org/wiki/Instanz_(Informatik)
  named entities Benannte Zeichen

zum Anfang der SeiteTypische Darstellung

Es gibt Zeichen, die immer problemlos eintippbar bzw. mit allen Zeichencode-Tabellen darstellbar sind. Alle anderen können, falls man Probleme erwartet, mit entities "umschrieben" werden. Dafür gibt es mehrere Varianten:

Tag Beispiel, wie es dargestellt wird
problemlose
Schriftzeichen,
werden wie
sie sind
codiert und
abgespeichert
(Leerzeichen) ! " # $ % & ' ( ) * + , - . /
0 1 2 3 4 5 6 7 8 9
: ; < = > ? @
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
[ \ ] ^ _ `
a b c d e f g h i j k l m n o p q r s t u v w x y z
{ | } ~
&copy; ©
&#169; ©
&#xA9; ©

zum Anfang der SeiteBeschreibung

Zeichensatz (character set), Zeichensatztabellen

Jedes Schriftzeichen eines Zeichensatzes (engl.: character sets, in HTML das Attribut charset), das am Computer gespeichert wird, muss in eine Zahl umgewandelt werden (Kodierung in eine Folge von bits). Dies gilt für alle Programme und nicht nur für HTML.

Dazu werden Zeichensatztabellen verwendet. Sie legen in Form einer Tabelle fest, welches Schriftzeichen welchem Zahlenwert entspricht und umgekehrt.

Der Zahlenwert wird Codepoint genannt, das zugehörige Schriftzeichen als abstraktes Zeichen (abstract characters) - die Verbindung aus beiden als kodiertes Zeichen (encoded character). Die Summer der Codepoints ergeben den Coderaum (code space). Der Coderaum wird im Allgemeinen durch Integerzahlen repräsentiert.
http://de.wikipedia.org/wiki/Codepoint

http://de.wikipedia.org/wiki/Zeichensatz
http://de.wikipedia.org/wiki/Zeichencodierung
http://de.wikipedia.org/wiki/Zeichensatztabelle

Probleme

Probleme kann es geben, wenn Daten in einen Computer eingegeben, auf einen anderen transferiert und dort wieder ausgegeben werden. Verwenden beide Computer die selben Zeichensatztabellen, so gibt es kein Problem mit der Darstellung bei der Ausgabe. Probleme gibt es, wenn beide unterschiedliche Zeichensatztabellen verwenden, wie es früher üblich war z.B.:

frühere Zeichensatztabellen (Codepage oder Character Map)

Einer der ersten Zeichensatztabellen für Computer war der ASCII-Code (American Standard Code for Information Interchange). Er ist 7 bit lang und umfasst daher 128 Zeichen (davon 95 "druckbare" Zeichen, die restlichen sind Steuerzeichen). Die druckbaren Zeichen sind Buchstaben des lateinischen Alphabets (in Groß- und Kleinschreibung), die zehn arabischen Ziffern sowie die wichtigsten Satzzeichen und Sonderzeichen:
!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqrstuvwxyz{|}~

http://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange
ASCII-Codetabelle (ohne die Steuerzeichen von 0 bis 31)

Bin Hex Dez ASCII Zeichen
0100000 0x20 32 SP Leerzeichen
0100001 0x21 33 !
0100010 0x22 34 "
0100011 0x23 35 #
0100100 0x24 36 $
0100101 0x25 37 %
0100110 0x26 38 & kaufmännisches und
0100111 0x27 39 '
0101000 0x28 40 (
0101001 0x29 41 )
0101010 0x2a 42 *
0101011 0x2b 43 +
0101100 0x2c 44 ,
0101101 0x2d 45 -
0101110 0x2e 46 .
0101111 0x2f 47 /
0110000 0x30 48 0
0110001 0x31 49 1
0110010 0x32 50 2
0110011 0x33 51 3
0110100 0x34 52 4
0110101 0x35 53 5
0110110 0x36 54 6
0110111 0x37 55 7
0111000 0x38 56 8
0111001 0x39 57 9
0111010 0x3a 58 :
0111011 0x3b 59 ;
0111100 0x3c 60 <
0111101 0x3d 61 =
0111110 0x3e 62 >
0111111 0x3f 63 ?
1000000 0x40 64 @
1000001 0x41 65 A
1000010 0x42 66 B
1000011 0x43 67 C
1000100 0x44 68 D
1000101 0x45 69 E
1000110 0x46 70 F
1000111 0x47 71 G
1001000 0x48 72 H
1001001 0x49 73 I
1001010 0x4a 74 J
1001011 0x4b 75 K
1001100 0x4c 76 L
1001101 0x4d 77 M
1001110 0x4e 78 N
1001111 0x4f 79 O
1010000 0x50 80 P
1010001 0x51 81 Q
1010010 0x52 82 R
1010011 0x53 83 S
1010100 0x54 84 T
1010101 0x55 85 U
1010110 0x56 86 V
1010111 0x57 87 W
1011000 0x58 88 X
1011001 0x59 89 Y
1011010 0x5a 90 Z
1011011 0x5b 91 [
1011100 0x5c 92 \ Backslash
1011101 0x5d 93 ]
1011110 0x5e 94 ^
1011111 0x5f 95 _ Unterstrich
1100000 0x60 96 `
1100001 0x61 97 a
1100010 0x62 98 b
1100011 0x63 99 c
1100100 0x64 100 d
1100101 0x65 101 e
1100110 0x66 102 f
1100111 0x67 103 g
1101000 0x68 104 h
1101001 0x69 105 i
1101010 0x6a 106 j
1101011 0x6b 107 k
1101100 0x6c 108 l
1101101 0x6d 109 m
1101110 0x6e 110 n
1101111 0x6f 111 o
1110000 0x70 112 p
1110001 0x71 113 q
1110010 0x72 114 r
1110011 0x73 115 s
1110100 0x74 116 t
1110101 0x75 117 u
1110110 0x76 118 v
1110111 0x77 119 w
1111000 0x78 120 x
1111001 0x79 121 y
1111010 0x7a 122 z
1111011 0x7b 123 {
1111100 0x7c 124 |
1111101 0x7d 125 }
1111110 0x7e 126 ~ Tilde
1111111 0x7f 127 DEL Delete

Die Zeichen des ASCII-Codes entsprechen im Wesentlichen dem der Tastatur bzw. Schreibmaschine in englischer Sprache. Da im ASCII-Code keine länderspezifischen Zeichen vorkommen, wie z.B. die deutschen Umlaute, wurde der ASCII-Code von 7 bit Länge auf 8 bit (= 1 Byte) erweitert. Dieser "Erweiterte ASCII-Code" umfasste nun 256 Zeichen und nicht nur 128 wie der ursprüngliche.

Die zusätzlichen 128 stellen reichten aber nicht aus, um alle anderen benötigten Schriftzeichen der "wichtigsten" Schriften weltweit gleichzeitig unter zu bringen. Daher gibt es vom Erweiterten ASCII-Code 15 Varianten, z.B. Latin-1, Westeuropäisch (ISO 8859-1), Latin-4, Nordeuropäisch (ISO 8859-4), Arabisch (ISO 8859-6), Griechisch (ISO 8859-7), Latin-9, Westeuropäisch (ISO 8859-15) sowie Mitteleuropäisch, Südeuropäisch, Kyrillisch, Hebräisch, Türkisch, Nordisch, Baltisch, Keltisch und Südosteuropäisch.

Verschiedene Betriebssysteme verwendeten auch veränderte Zeichensatztabellen wie z.B.:

Welche Programme / Betriebssysteme verwenden Unicode (oder andere Zeichencode-Tabellen?
Antwort? http://de.wikipedia.org/wiki/Unicode#Kodierung

Für die USA und westeuropäische Länder verwenden Windows und Linux dieselben Codeseiten. Eine Codeseite ist eine Liste ausgewählter Zeichencodes in einer bestimmten Reihenfolge. Mac OS X verwendet eine andere Codeseite als Windows und Linux. Für japanische Betriebssysteme setzen alle Plattformen dieselbe Codeseite ein, d. h. Portabilität ist bei japanischen Anwendungen kein wirkliches Problem. Wenn Sie ein VI von einer Plattform auf eine andere übertragen, z. B. von einem Macintosh auf einen PC oder umgekehrt, kann es aufgrund der verschiedenen Codeseiten, besonders bei der Verwendung von nicht ASCII-Zeichen im oberen 128-Bereich, zu Problemen kommen. Das französische Wort café beispielsweise enthält das erweiterte Zeichen é, dessen Hexadezimalwert auf einem PC \0xE9 lautet. Derselbe Hexadezimalwert stellt auf einem Macintosh das Zeichen È dar.
http://zone.ni.com/reference/de-XX/help/371361K-0113/lvconcepts/porting_among_platforms/

In HTML war für die deutsche Sprache verwendete Zeichensatztabelle Latin-1, Westeuropäisch (ISO 8859-1), sie umfasst die länderspezifischen Buchstaben aus Deutsch, Französisch, Spanisch, Schwedisch, …
Um später auch das € (Euro-Zeichen) verwenden zu können wurde sie angepasst und wurde zur Latin-9, Westeuropäisch (ISO 8859-15). Diese Zeichensatztabelle immer immer noch auf vielen Webseiten verwendet.

Probleme mit unterschiedlichen Zeichensatztabellen

Die ersten 128 Zeichen jeder dieser Zeichensatztabellen entsprechen immer denen des ASCII-Codes. Die zweite Hälfte der Zeichensatztabellen enthalten aber abweichende Schriftzeichen, z.B einerseits Umlaute, andererseits griechische Buchstaben wiederum andererseits kyrillische Buchstaben usw.
Details: http://de.wikipedia.org/wiki/ISO_8859

So gesehen sind die Zeichen der ersten 128 Positionen
!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqrstuvwxyz{|}~

problemlos verwendbar, da sie auf jeden Computer (egal welche Zeichensatztabelle dieser verwendet) die selbe Zahl als Code haben. Problematisch können nur Zeichen der "Erweiterung" (Position 129 bis 256) sein. Betroffen sind davon auch z.B. die Umlaute der deutschen Sprache und das ß (scharfes s).

http://de.wikipedia.org/wiki/ASCII
http://de.wikipedia.org/wiki/ISO_8859-1
http://de.wikipedia.org/wiki/Windows-1252#Windows-1252
http://de.wikipedia.org/wiki/Codepage_437
http://de.wikipedia.org/wiki/Macintosh_Roman

http://de.wikipedia.org/wiki/ISO_8859
http://de.wikipedia.org/wiki/Diakritisches_Zeichen

Details: Manche Applikationen vermischen die Definition von ISO 8859-1 und Windows-1252. Diese Codierungen unterscheiden sich jedoch nur in den Steuerzeichen im Bereich 8016 bis 9F16. Da diese beispielsweise in HTML keine Bedeutung haben, werden oft die druckbaren Zeichen aus Windows-1252 verwendet. Aus diesem Grund schreibt der neue HTML5-Standard vor, dass als ISO 8859-1 markierte Texte als Windows-1252 zu interpretieren sind (siehe http://www.w3.org/html/wg/drafts/html/master/syntax.html#character-encodings)
Quelle: http://de.wikipedia.org/wiki/ISO_8859-1

Lösung mit entities

Man kann in HTML Zeichen die außerhalb der ersten 128 Stellen liegen, durch entities maskieren. Entities gibt es in drei Schreibvarianten:

named entities (Benannte Zeichen)
Das Zeichen hat einen vorgegebenen Namen. Dieser wird zwischen & und ; geschrieben, z.B. &copy; für ©
nummerische Schreibweise: dezimal
Für das Zeichen wird der Positionscode in dezimaler Schreibweise verwendet. Zusätzlich zum & und ; wird eine Raute # vor die Zahl geschrieben, z.B. &#169; für ©
nummerische Schreibweise: hexadezimal
Für das Zeichen wird der Positionscode in hexadezimaler Schreibweise verwendet. Zusätzlich zum & und ; wird eine Raute # vor die Zahl geschrieben sowie ein x als Symbol für die hexadezimale Schreibweise, z.B. &#xA9; für ©

Für entities werden nur das Zeichen "&" und ";" verwendet sowie lateinische Kleinbuchstaben bei benannten entities bzw. arabische Ziffern sowie das Symbol "#" bzw. "x" bei nummerischen entities. Diese Zeichen sind alle im Bereich der ersten 128 Stellen. Somit können alle Zeichen außerhalb der ersten 128 Stellen durch Zeichen innerhlalb der ersten 128 Stellen "beschreiben" werden. Somit sind alle Zeichen im text-html-code innerhalb der erste 128 Stellen, die in allen Zeichensatztabellen gleich sind. Daher gibt es keinerlei Probleme mit unterschiedlichen Zeichensatztabellen.

 http://webkompetenz.wikidot.com/html-handbuch:entities

Unicode (utf-8)

Heute kann man diese Probleme besser lösen, indem man die Zeichensatztabelle namens Unicode verwendet. Er ist ein internationaler Standard, er ist größer als 1 Byte und könnte über 1 Million unterschiedlicher Zeichen umfassen. Er soll alle bisherigen (unterschiedlichen und nicht miteinander kompatiblen Zeichensatztabellen) ersetzen und wird alle Schriftzeichen aller Schriften weltweit enthalten (woran aber noch gearbeitet wird).

http://de.wikipedia.org/wiki/Unicode
http://de.wikipedia.org/wiki/Byte_Order_Mark
http://www.unicode.org/
http://de.selfhtml.org/inter/unicode.htm

http://de.wikipedia.org/wiki/Unicode#Weblinks

Auch im Unicode sind die ersten 128 Zeichen identisch mit dem ASCII-Code und also auch mit allen anderen Zeichensatztabellen kompatibel. Die weiteren 128 Zeichen sind identisch mit ISO 8859-1 (Latin-1, Westeuropäisch)., aber nicht mit:
ISO 8859-15  (Latin-9, Westeuropäisch)
Windows-1252 (Windows-1252 Westeuropäisch, Betriebssystem Windows)
Mac OS Roman auch Macintosh Roman (für Westeuropa und Amerika, Betriebssystem Mac OS dem Vorgänger von Mac OS X)

Auswirkungen?

. Hier ist er also zu allen bisherigen Zeichencode-Tabellen rückwärtskompatibel.
 entspricht er ISO 8859-1) was bedeutet, dass alle alten Dateien die mit einer "alten" Zeichencode-Tabelle gespeichert wurde, unverändert als Uniccode

Zeichensatztabellen in HTML

Unicode wird in HTML5-Datei meist in der Form UTF-8 angegeben: <meta http-equiv="Content-Type" content="text/html; charset=utf-8">.

http://webkompetenz.wikidot.com/html-handbuch:zeichenkodierung
http://de.wikipedia.org/wiki/UTF-8

Schriftart (font-family)

Vorsicht: Das Vorhandensein des passenden Zeichensatzes auf einem Computer garantiert noch nicht die richtige Darstellung einzelner Schriftzeichen. In der verwendeten Schriftart (in CSS mit der Eigenschaft font-family angegeben) muss für das entsprechende Schriftzeichen eine Glyphe (Beschreibung der konkreten grafischen Darstellung des Zeichens) definiert sein. Ist dies nicht der Fall, wird nur ﻾ ausgegeben.

Quellen:
http://de.wikipedia.org/wiki/Zeichensatz

http://de.wikipedia.org/wiki/Zeichenkodierung
http://de.wikipedia.org/wiki/Zeichenkodierung#Differenzierung_der_Begriffe_durch_Einf.C3.BChrung_des_Unicodes
http://de.wikipedia.org/wiki/Zeichenkodierung#Grafische_Darstellung

http://de.wikipedia.org/wiki/Unicode
http://de.wikipedia.org/wiki/Unicode_Transformation_Format

http://de.wikipedia.org/wiki/Glyphe
http://www.unicode.org/reports/tr17/#CharactersVsGlyphs

http://de.wikipedia.org/wiki/Windows-1252#Windows-1252
http://de.wikipedia.org/wiki/Macintosh_Roman
http://de.wikipedia.org/wiki/ISO_8859-15
http://de.wikipedia.org/wiki/UTF-8

Praxis in HTML

Ist als Zeichensatz Unicode gewählt (charset=utf-8), dann können alle Zeichen direkt, so wie sie sind, im text-html-code stehen, also auch z.B. alle Umlaute, scharfes s usw. Es dürfen diese Zeichen aber auch mti Entities maskiert werden (außer bei HTML5 in XML Serialisierung).

Werden andere Zeichensätze gewählt, wie z.B. US/Westeuropäisch (ISO) (charset=iso-8859-1) oder US/Westeuropäisch (Windows) (charset=windows-1252); sollte man die Zeichen über 127 maskieren.

Auf alle Fälle müssen die Zeichen &, <, > sowie " maskiert werden, da sie als "Steuerzeichen" im text-html-code vorkommen und somit Probleme machen würden:

Zeichen benanntes entity englische Bezeichnung deutsche Bezeichnung  
& &amp; ampersand kaufmännische und (& ist aus den beiden Buchstaben et entstanden) alle Zeichen nach & würden als entitiy gelesen werden
< &lt; lower than kleiner als alle Zeichen nach < würden als
> &gt; greater than größer als  
" &quot; quote quotation Anführungszeichen  

Würde ein & unmaskiert in text-html-code stehen, würde ein Browser analysieren, dass hier ein entity beginnt und den darauffolgenden Text fäschlicherweise als Namen eines entitys interpretieren.
Beispiel: <h2>Obelix & Co</h2>
Der Browser würde Co als Name eines entities interpretieren, kennt aber ein solches nicht!

Würde ein < unmaskiert in text-html-code stehen, würde ein Browser analysieren, dass hier ein HTML-Element beginnt und den darauffolgenden Text fäschlicherweise als Namen eines HTML-Elements interpretieren.
Beispiel: <p>Wenn a < b ist, kann die Gleichung gelöst werden.</p>
Der Browser würde b als HTML-Element interpretieren und möglicherweise den nachfolgenden Text fett darstellen.

Würde ein > unmaskiert in text-html-code stehen, würde ein Browser analysieren, dass hier ein HTML-Element endet und den darauffolgenden Text falsch interpretieren.
Beispiel: <p>b > a bedeutet, das b die längere Strecke ist</p>
Der Browser könnte interpretieren, dass hier in < vergessen wurde, und dass hier ein Anfangstag <b> vorliegt und den nachfolgenden Text fett darstellen.

Würde ein " unmaskiert in text-html-code stehen, würde ein Browser analysieren, dass hier ein Attributwert beginnt oder endet und den darauffolgenden Text fäschlicherweise als Wert eines Attributs interpretieren oder als Namen eines weiteren, nachfolgenden Attributs interpretieren.
Beispiel: <img alt="Ein "Schönling" im Wasser." src="ich.jpg" />
Der Browser würde im Alternativtext das " vor Schönling als Ende des Attributwertes interpretieren und daher das Wort Schönling als nächsten Attributname interpretieren aber ein solches nicht kennen.

http://de.wikipedia.org/wiki/Kompositionstaste

http://allchars.zwolnet.com/
http://charmap.de/

zum Anfang der SeiteWeb-Editoren

Expression Web | BlueGriffon | Dreamweaver 8

Expression Web

fehlt noch

http://webkompetenz.wikidot.com/html-handbuch:entities

Zahlen woher? Unicode-charts
http://webkompetenz.wikidot.com/html-handbuch:html-zeichenreferenz-unicode
http://webkompetenz.wikidot.com/html-handbuch:html-zeichenreferenz-unicode
ASCII-Zeichensatz http://webkompetenz.wikidot.com/html-handbuch:html-zeichenreferenz-entities-ascii
Latin-1 http://webkompetenz.wikidot.com/html-handbuch:html-zeichenreferenz-entities-latin-1
mathematische Symbole http://webkompetenz.wikidot.com/html-handbuch:html-zeichenreferenz-entities-mathe-symbole
Interpunktion http://webkompetenz.wikidot.com/html-handbuch:html-zeichenreferenz-entities-interpunktion

http://de.wikipedia.org/wiki/Liste_der_Unicodebl%C3%B6cke

http://www.utf8-zeichentabelle.de/unicode-utf8-table.pl?number=1024&utf8=-&unicodeinhtml=dec&htmlent=1

Character Entity reference
http://dev.w3.org/html5/html-author/charref

Windows: charmap.exe

BlueGriffon

fehlt noch

Dreamweaver

einige sind über die Tastatur einfach einzugeben, z.B.: &, <, >, §, %, €, µ, Strg+Umschalt+Leerzeichen ( )

einige: Menü: Einfügen | HTML | Sonderzeichen

weitere: Menü: Einfügen | HTML | Sonderzeichen | weitere

restliche: in der Liste von SELFHTML nachsehen, Code des Zeichens (&name;) kopieren und danach im Eingabefeld von Menü: Einfügen | HTML | Sonderzeichen | weitere einfügen; oder im Arbeitsbereich Code von Dreamweaver direkt einfügen

oder alle: im Arbeitsbereich Code von Dreamweaver & eintippen, es klappt eine Liste mit (allen) benannten Zeichen auf, entweder das entsprechende mittels Bildlaufleiste suchen und mit der Maus anklicken; oder weitere Buchstaben eintippen, damit die Liste weiterspringt, bis passendes Zeichen markiert ist, danach die Eingabetaste klicken (oder sobald man das gewünscht sieht, mit der Maus anklicken)

zum Anfang der SeiteBearbeitung im Quellcode

Eine Liste mit benannten Zeichen findet man in SELFHTML unter HTML-Zeichenreferenz: http://de.selfhtml.org/html/referenz/zeichen.htm (HTML/XHTML » HTML-Referenz » HTML-Zeichenreferenz).

Rest fehlt noch: