Zeichen-Code-Encoding-Schriftart
Aus 4webmaster.de
Begriffsklärung
Es gibt manchmal Verwirrung um die Begriffe Zeichensatz, Schriftart, Encoding, Codepage, etc. Daher soll hier versucht werden, die Begriffe zu entwirren.
Was ist überhaupt ein Zeichen? Beispiele für Zeichen sind
| a b c A B C | mit denen sich Begriffe phonetisch darstellen lassen |
| 0 1 2 3 … | mit denen sich Zahlen darstellen lassen |
| 汉字/漢字 | wo ein einzelnes Zeichen für einen Begriff stehen kann |
| + − × ÷ √ ∑ | die für Rechenvorschriften oder abstrakte Beziehungen stehen | |
| mit denen ein Text in Wörter, Zeilen und Absätze eingeteilt wird | |
| ␣ oder ¶ | die als Stellvertreter für unsichtbare Zeichen dienen können |
| ──▶ | die eine Verknüpfung oder Beziehung ausdrücken | |
| 〈 〉 ( ) { } | die z.B. dafür stehen, dass der Kontext der folgenden Zeichen anders ist |
| ||
Obige Beispiele sind alles grafisch darstellbare Zeichen. Es gibt natürlich auch akustisch vermittelte Zeichen (wie etwa das Heulen einer Sirene) oder Zeichen, die haptisch wahrgenommen werden, wie die Zeichen der Blindenschrift. Es gibt sogar olfaktorisch vermittelte Zeichen. Zum Beispiel wird in einigen kanadischen Bergwerken als Alarmsignal ein nach faulen Eiern stinkendes Gas in die Stollen geleitet. Dadurch werden auch Arbeiter mit aufgesetzem Gehörschutz sehr schnell gewarnt.
Das Zeichen an sich ist aber etwas anderes als seine Darstellung. Ein Zeichen ist erst einmal die abstrakte Idee eines Signales oder Symboles. Eine abstrakte Idee kann man nur kommunizieren und vermitteln, indem man sie darstellt, indem man ihr eine wahrnehmbare Form gibt. Diese Darstellung eines Zeichens nennt man Glyphe. Zumindest wenn es sich um eine grafische Darstellung handelt.
Glyphen können unterschiedlich aussehen und doch das gleiche Zeichen darstellen. Zum Beispiel, wenn unterschiedliche Schriftarten ( Fonts) verwendet werden:
R R R ℜ
Menschen kommunizieren Zeichen, indem Sie sie grafisch, akustisch oder haptisch darstellen.
Computer repräsentieren Zeichen dagegen als numerischen Code.
Man kann sagen, was für den Menschen die Glyphe eines Zeichens ist,
das ist für den Computer der Code des Zeichens.
Für den Computer werden Zeichensammlungen aufgestellt, jedes Zeichen bekommt einen Code. Diese Zeichensammlungen heißen Zeichensatz oder Codepage, manchmal auch Charakter Map oder Zeichentabelle. Bekannte Zeichensätze sind ASCII, ISO 8859-1 und Unicode.
Ein Zeichensatz ist also etwas ganz anderes als eine Schriftart: Der Zeichensatz ordnet Zeichen einen Code zu, der Font dagegen ist eine Sammlung von Glyphen zur Darstellung von Zeichen. Bekannte Fonts sind Arial, Verdana, etc.
Wenn Rechner miteinander kommunizieren und dabei unterschiedliche Zeichensätze verwenden, kommt es zu Kommunikationsfehlern. Bei einfachen Buchstaben und Ziffern gibt es normalerweise keine Probleme, weil sie von fast allen Zeichensätzen gleich kodiert werden (man orientiert sich hier am Ur-Zeichensatz ASCII). Umlaute und Sonderzeichen werden hingegen falsch dargestellt. Eine Lösung bietet der Unicode-Zeichensatz, der jedem sinntragenden Zeichen der Welt einen festen Code zuordnet (derzeit knapp 100 000 Zeichen).
Da der Unicode-Zeichensatz so groß ist, braucht auch die Repräsentation eines Unicode-Codes (man spricht hier von einem Codepoint) viel Speicherplatz. Es sei denn, man verwendet Codes mit variabler Länge: kurze Codes für häufig verwendete Zeichen, lange Codes für seltenere Zeichen. Daher wird der Codepoint noch einmal encoded. Hier gibt es mehrere Möglichkeiten. Der Codepoint kann z.B. möglichst platzsparend verpackt werden (UTF-8), oder er kann so verpackt werden, dass Zeichenkettenoperationen möglichst einfach und schnell sind (UTF-32), oder ein Kompromiss zwischen beidem (UTF-16). Die Art der Verpackung, also die konkrete Darstellung des Zeichencodes als Bytes, wird Encoding genannt. Ein konkretes Beispiel und veranschaulichende Diagramme finden Sie im Artikel Unicode.
Andere Beispiele für Encodings sind
- Punycode für Domainnamen mit Sonderzeichen
- URL-Kodierung gemäß RFC 3986 für die Kodierung von Sonderzeichen in URL-Parametern
Weblinks
Dieser Artikel ist ein Originalartikel von 4webmaster.de. Copyright: Björn Klippstein; CC-Lizensierung in Kürze