Unicode

internationaler Standard zur Definition aller Schriftzeichen mit einem digitalen Code
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 28. Januar 2005 um 05:33 Uhr durch Jirret (Diskussion | Beiträge) (Siehe auch: 2 Links flüssiger denn flüssig, da in den Text integriert). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Unicode ist ein internationaler Standard mit dem Ziel, für jedes sinntragende Zeichen oder Element aller bekannten Schriftkulturen und Zeichensysteme einen digitalen Code festzulegen. Er will das Problem der verschiedenen inkompatiblen Kodierungen in den unterschiedlichen Ländern beseitigen. Herkömmliche Computer-Zeichensysteme umfassen einen Zeichenvorrat von 128 (7 Bit) wie der sehr bekannte (ASCII) bzw. 256 (8 Bit) Zeichen, wie z. B. ISO Latin-1, wovon nach Abzug der Steuerzeichen 96 bzw. 192–224 als Schrift- und Sonderzeichen darstellbar sind. Diese Zeichenkodierungen erlauben die gleichzeitige Darstellung von nur wenigen Sprachen im selben Text, wenn man sich nicht gar damit behelfen muss, in einem Text verschiedene Schriften mit unterschiedlichen Zeichensätzen zu verwenden. Dies behinderte den internationalen Datenaustausch erheblich. In Unicode finden sämtliche Zeichen bestehender Zeichensätze nach Industriestandards und nationalen sowie ISO-Normen eine 1 : 1 Entsprechung. Daher enthält Unicode etliche mit [diakritisches Zeichen|Diakritika]] zusammengesetzte Zeichen, wie sie ansonsten nicht kodiert werden. Heute erledigen die meisten Webbrowser die Darstellung dieser Zeichensätze mit einer Unicode-kodierten Schrift in der Regel perfekt und vom Benutzer unbemerkt.

Die praktisch bedeutungsgleiche Bezeichnung des Unicode-Zeichensatzes, Universal Character Set (UCS) wird von ISO verwendet.

Im Unicode werden "abstrakte Zeichen" (engl.: characters) kodiert, nicht Glyphen. Letzteres ist die graphische Darstellung abstrakter Zeichen, die extrem unterschiedlich ausfallen kann, beispielsweise in Fraktur, Antiqua oder im Irischen, siehe auch Glyphe. So haben einige lateinische und griechische Buchstaben in Schriften, die beide Alphabete enthalten, die folgenden zweifach kodierten Glyphen: Α Β Ε Ζ Η Ι Κ Μ Ν Ο Ρ Τ Υ Χ. Von vielen Zeichen gibt es sprach- oder kontextabhängige Glyphen sowie - je nach Sprache und Schrift - auch typographisch mehr oder minder notwendige Glyphenvarianten und Ligaturen, zu deren Darstellung es sogenannter Smartfonttechniken wie OpenType, nicht aber einer Unicode-Kodierung bedarf. Allerdings gibt es Grenzfälle, in denen um die Entscheidung hart gerungen wird, ob es sich un Glyphenvarianten oder kodierungswürdige Zeichen handelt. Beispielsweise waren nicht wenige Fachleute der Meinung, die phönizische Schrift könne man als Glyphenvarianten des Hebräischen betrachten, da es im Zeichenvorrat beider Alphabete eine 1 : 1 Entsprechung gibt, und auch die Sprachen sehr eng verwandt sind. Die Auffassung, es handele sich um ein separates Zeichensystem, in der Unicode-Terminologie "script", hat sich letztlich durchgesetzt.

Gegenüber anderen Normen gibt es bei Unicode die Besonderheit, daß einmal kodierte Zeichen um der Langlebigkeit digitaler Daten willen niemals wieder entfernt werden. Sollte sich die Normierung eines Zeichens nachträglich als Fehler erweisen, wird allenfalls von seiner Verwendung abgeraten

Die digitale Speicherung und -Übertragung von Unicode erfolgt in unterschiedlichen Formaten, siehe: Unicode Transformation Format (UTF), von denen UTF8 das gebräuchlichste ist, z.B. im Internet und in Microsoft-Anwendungen.


Geschichte

Eine der frühsten Formen der Digitalisierung war der Morsecode. Der Morsecode wurde mit der Einführung von Fernschreibern aus den Telegrafennetzen verdrängt und durch Baudot-Code und Murray Code ersetzt. Vom Murray Code zum ASCII-Code war es dann nur noch ein kleiner Schritt. In den Anfängen des Computerzeitalters entwickelte sich der ASCII-Code zum Standard-Code für Schriftzeichen. Wie der Name („American Standard Code for Information Interchange“) schon sagt, diente der ASCII-Code ursprünglich zur Darstellung von Schriftzeichen der englischen Sprache. Um später auch Sonderzeichen anderer Sprachen darstellen zu können, wurde der Code erweitert. Allerdings bot der 8 Bit Code zu wenig Platz, um alle Sonderzeichen gleichzeitig unterzubringen, wodurch verschiedene Erweiterungen notwendig wurden. Auch war es nicht möglich z. B. chinesische Schriftzeichen in einem 8 Bit Code unterzubringen. Das führte später zum Unicode, der eines Tages sämtliche Schriftzeichen aller Kulturen und Zeiten enthalten soll. Unicode (meist in UTF-8-Kodierung) ist heute schon der unverzichtbare Standard für dem internationalen elektronischen Informationsaustausch, wie im Word Wide Web das Wikipediaprojekt besonders eindrucksvoll demonstriert.

Anfangs glaubte man, mit einem Repertoire von 65.536 Zeichen (16 Bit) auskommen zu können. Bald aber stellte sich dies als unzureichend heraus. Nunmehr ist der Standard für 1.114.112 (= 220+216) Zeichen ausgelegt. Dies deckt den Code Bereich von U+00000 bis U+10FFFF ab. Bislang, in Unicode 4.0, sind 96.382 Codes individuellen Zeichen zugeordnet. Das entspricht in etwa erst 9% des Koderaumes.

Unicode Consortium

Das Unicode Consortium (eine gemeinnützige Gesellschaft mit Sitz in Kalifornien) publizierte 1990 eine erste Fassung des Standards und hat seither regelmäßig neue Fassungen herausgegeben, entsprechend dem jeweiligen Stand der geleisteten Standardisierungsarbeit. Derzeit werden pro Jahr etwa 1000 neue Zeichen hinzugefügt.

Das Konsortium arbeitet mit der Internationalen Organisation für Standardisierung zusammen, die den Standard ISO 10646 herausgibt. Unicode und ISO 10646 stimmen in der Zeichenkodierung vollkommen überein. Unicode aber enthält zusätzliche Angaben für die Softwareimplementierung (Darstellung, Sortierreihenfolgen, Schreibrichtung etc.). .

Unicode ist strenggenommen eine Untermenge von ISO 10646: während ISO 10646 Zeichencodes mit bis zu 31 Bit zuläßt, sind bei Unicode maximal 21 Bit erlaubt. Zur Zeit ist das jedoch nur von theoretischem Interesse, da noch keine Zeichen definiert wurden, die über den 21-Bit-Bereich hinausgehen. Dies soll sich laut einem Prinzipien-Dokument der Arbeitsgruppe, die die ISO-Norm weiterentwickelt, in absehbarer Zeit nicht ändern.

Codes

Unicode-Zeichen werden oft in der Form U+XXXX angegeben, wobei das U für Unicode steht, und XXXX die hexadezimale Zahl ist, mit der das Zeichen kodiert ist. Hier einige Beispiel für Codebereiche:

  • U+0000 - U+007F Controls and Basic Latin: die ersten 128 Zeichen, entsprechen dem ASCII-Zeichensatz
  • U+0080 - U+00FF Controls and Latin1 Supplement: Erweiterungen für Latein und Steuerzeichen
  • U+0100 - U+17FF Europäische Sonderzeichen für die lateinische Schrift
  • U+1800 - U+024F Weitere lateinische Sonderzeichen
  • U+0250 - U+02FF IPA-Ergänzungen :
  • U+0300 - U+036F Kombinierende diakritische Zeichen
  • U+0370 - U+03FF Griechisch und einige koptische Zeichen
  • U+0400 - U+052F Kyrillisch
  • U+0530 - U+058F Armenisch
  • U+0590 - U+05FF Hebräisch
  • U+0600 - U+06FF Arabisch
  • U+0700 - U+074F Syrisch

Schriftarten

Mittlerweile hat der Zeichensatz von Unicode/ISO einen Umfang angenommen, der es mit derzeitigen Schrifttechniken nicht mehr in einer einzigen Schriftdatei unterzubringen ist. In Postscript-CFF-, True- und OpenType Schriften kann man maximal 65.536 Zeichen unterbringen. So versteht es sich von selbst, daß Unicode/ISO-Konformität einer Schrift nicht bedeutet, daß der komplette Zeichensatz enthalten sein muß, sondern lediglich, daß die enthaltene Zeichenauswahl normgerecht kodiert ist. Normalerweise wird eine dem Verwendungszweck oder Verbreitungsgebiet angemessene Auswahl getroffen. Die derzeit vollständigste Schrift – in zwei Dateien aufgeteilt – ist Code 2000/Code 2001 von James Kass Eine Übersicht über viele kostenlose und kommerzielle umfangreiche und spezialisierte Unicode Schriften bietet Allan Wood

Versionen

  • 1989 DP 10646 (Vorschlag für den Entwurf von ISO 10646, unabhängig von Unicode)
  • 1990 DIS-1 10646 (Erster Entwurf für ISO 10646, unabhängig von Unicode)
  • 1991 Unicode 1.0
  • 1992 Unicode 1.0.1 (Modifikationen um eine Zusammenführung mit ISO 10646 zu ermöglichen)
  • 1993 Unicode 1.1 (Unicode und ISO-Norm erstmals vereinigt: Codes identisch zu ISO 10646-1: 1993)
  • 1996 Unicode 2.0 (Abgleich mit ISO 10646 Erweiterungen)
  • 1998 Unicode 2.1 (unter anderem Einführung des Eurozeichens)
  • 2000 Unicode 3.0 (Abgleich mit ISO 10646-1: 2000)
  • 2001 Unicode 3.1 (Abgleich mit ISO 10646-2: 2001)
  • 2002 Unicode 3.2
  • 2003 Unicode 4.0 (Abgleich mit ISO 10646: 2003)
  • 2004 Unicode 4.0.1
  • 2005 Unicode 4.1 - Beta (Januar), endgültige Version im Frühjahr zu erwarten

Anwendung der Tabellen

Will man ein Unicode-Zeichen (zum Beispiel „⊕“) in HTML oder XML verwenden, sucht man es zunächst aus der entsprechenden Tabelle (hier: Mathematische Symbole). Dort ist seine Zeichennummer hexadezimal angegeben. Mit dieser Zeichennummer erstellt man dann eine Zeichenentität durch Voranstellen von „&#x“ und Anfügen „;“, eben „⊕“, das ergibt dann das gewünschte Zeichen „⊕“. Die Zeichennummer kann in der Zeichenentität auch dezimal, dann ohne führendes „x“, angegeben werden, zum Beispiel „⊕“ für das gleiche Zeichen. Die Text Encoding Initiative TEI hat Empfehlungen erarbeitet, Unicode in XML-Dateien in leichter handhabbarer Form einzugeben.

Im Vi Improved kann man Unicode-Zeichen (Voraussetzung: Unicode-basierte Locale oder als Unicode, zum Beispiel UTF-8, erkannte Datei) eingeben, indem man Strg+V,U und dann die hexadezimale Zeichennummer drückt, also zum Beispiel Strg+V,U,2,0,A,C für das Euro-Zeichen.

Im Emacs kann man Unicode-Zeichen eingeben, indem man ALT-c insert-ucs-character und dann die dezimale Zeichennummer eingibt, also 8364 für das Zeichen €.

Unter Windows (ab Windows 2000) kann in vielen Programmen der Code hexadezimal eingegeben werden. Mit nachfolgendem Alt-x wird das Zeichen erzeugt. Diese Tastenkombination kann unter Windows XP auch benutzt werden, den Code des vor dem Cursor stehnenden Zeichens anzuzeigen.

Ob das entsprechende Unicode-Zeichen auch tatsächlich am Bildschirm erscheint, hängt davon ab, ob die verwendete Schriftart eine Glyphe für das gewünschte Symbol (also eine Grafik für die gewünschte Zeichennummer) enthält. Unter Windows wird, falls die verwendete Schrift ein Zeichen nicht enthält, nach Möglichkeit ein Zeichen aus einer anderen Schrift eingefügt. In der Typographie nennt man so etwas Zwiebelfisch und gilt gemeinhin als Fehler.

Siehe auch

Standards:

  • RFC 2152 (UTF-7, A Mail-Safe Transformation Format of Unicode)
  • RFC 3629 (UTF-8, a transformation format of ISO 10646)

Konverter:

  • Unicode Characters to HTML Entities Converter -- http://pioneer.stereo.lu/converter.html -- konvertiert Unicode-Zeichen in dezimale und hexadizmale HTML-Entitäten (von Shaun Moss, adaptiert von „ASCII to HEX to Unicode Converter“ von Mike Golding)

Tools:


Literatur

Joan Aliprand (Hrsgr.), Julie Allen (Hrsgr.), Joe Becker (Hrsgr.), The Unicode Standard Version 4.0, Addison Wesley 2003, ISBN 0321185781


minnan:Thong-iōng-bé