Exotische Zeichensätze

Hersteller-spezifische Varianten

Einige Software-Hersteller haben firmen-eigene Zeichensätze entwickelt. Das ergibt natürlich auch firmen-eigene Dokumente, die mit anderer Software evtl. fehlerhaft angezeigt wird. Diese extrem KundInnen-feindliche Einstellung hat dazu geführt, dass viel Zeit, Geld und Mühe in die Übersetzung von Dokumenten investiert wurde.
Alle Hersteller bieten mittlerweile die Verwendung internationaler Standards. M$ zeichnet sich dadurch aus, dass die meisten Standards zwar verfügbar sind, oft jedoch gut versteckt und mit eigenartigen Namen getarnt.
Sie sollten für alle Dokumente ausschließlich internationale Standards verwenden. Nur damit haben sie die Gewähr, dass ihre Dokumente weltweit auf jedem System und mit jeder Software richtig angezeigt werden.
In jedem anderen Fall müssen sie auf die Fähigkeiten anderer PC und deren Software vertrauen, ihre Dokumente korrekt zu übersetzen.
Zeichencodes PC-Codes für Buchstaben, Ziffern und Sonderzeichen
EBCDIC Zahlreiche Hersteller-spezifische Varianten
LICSLotus International Character Set
MacRoman Eine der Apple-Varianten für nationale Sonderzeichen
Windows-1250 Die M$-Variante ('ANSI') ähnlich ISO-8859-1 (Latin-1)

LICS - Lotus International Character Set

Von Lotus verwendet, nach Aufkauf des Unternehmens auch durch einige Programme von IBM und HP. Leider konnten dazu noch keine brauchbaren Angaben gefunden werden -
Die hier gezeigten Daten wurden rein experimentell (!) gewonnen und sind mit besonderer Vorsicht zu betrachten (natürlich ohne Gewähr !). Unbekannte Positionen in der Code-Tabelle sind leer gelassen.
Der Bereich 0..127 (#00..#7F) ist in LICS ebenso wie in den meisten anderen Codes identisch mit dem → ASCII-Code.
Die deutschen Umlaute und das scharfe ß werden in LICS genauso codiert wie in → ISO-8859-1 und → Unicode (durch mehrere Hinweise bestätigt). LICS-Daten deutscher Texte kann man daher notfalls mit dem ISO-Filter importieren und exportieren.
Unicode und ISO-8859-1
  0123 4567 89AB CDEF
8 PADHOPBPHNBH INDNELSSAESA HTSHTJVTSPLD PLURISS2SS3
9 DCSPU1PU2STS CCHMWSPAEPA SOSSGCISCICSI STOSCPMAPC
A  ¡¢£ ¤¥¦§ ¨©ª« ¬­®¯
B °±²³ ´µ· ¸¹º» ¼½¾¿
C ÀÁÂÃ ÄÅÆÇ ÈÉÊË ÌÍÎÏ
D ÐÑÒÓ ÔÕÖ× ØÙÚÛ ÜÝÞß
E àáâã äåæç èéêë ìíîï
F ðñòó ôõö÷ øùúû üýþÿ
LICS (ohne Gewähr !)
  0123 4567 89AB CDEF
8 ¤´ˆ¨ ˜® 𬦭    
9   Ž  ¾   ¯×ݸ
A ƒ¡¢£  ¥ § ©ª« ž  ÷
B °±²³ µ· ¹º» ¼½Š¿
C ÀÁÂÃ ÄÅÆÇ ÈÉÊË ÌÍÎÏ
D ÐÑÒÓ ÔÕÖ  ×ÙÚÛ Ü þß
E àáâã äåæç èéêë ìíîï
F ðñòó ôõö  øùúû ü Þý
Links:
Batutis - Lotus MultiByte Character Set (LMBCS)
 

MacRoman

Ältere Apple Macintosh-PC verwenden diesen Code. Er ist im unteren Bereich (#00..FF, 0. bis 127.) identisch mit dem → ASCII-Code. Rechts ein unverbindlicher Auszug für die Umwandlung der deutschen Sonderzeichen.

In den beiden Code-Tabellen (unten) sind die deutschen Sonderzeichen und das -Zeichen grün markiert. Das Euro--Zeichen ist im ISO-8859-1 Zeichensatz nicht enthalten. Verwenden sie dafür am besten das Unicode-Zeichen U+20AC.

MacRoman definiert eine Reihe mathematischer Sonderzeichen, die in → ISO-8859 nicht vorkommen, aber im → Unicode natürlich enthalten sind.
ISO/UniChrMacRoman
#C4196.Ä#80160.
#D6214.Ö#85133.
#DC220.Ü#86134.
#E4228.ä#8A138.
#F6246.ö#9A154.
#FC252.ü#9F159.
#DF223.ß#A7167.
#20AC8364.#DB219.
Unicode und ISO-8859-1
  0123 4567 89AB CDEF
8 PADHOPBPHNBH INDNELSSAESA HTSHTJVTSPLD PLURISS2SS3
9 DCSPU1PU2STS CCHMWSPAEPA SOSSGCISCICSI STOSCPMAPC
A  ¡¢£ ¤¥¦§ ¨©ª« ¬­®¯
B °±²³ ´µ· ¸¹º» ¼½¾¿
C ÀÁÂÃ ÄÅÆÇ ÈÉÊË ÌÍÎÏ
D ÐÑÒÓ ÔÕÖ× ØÙÚÛ ÜÝÞß
E àáâã äåæç èéêë ìíîï
F ðñòó ôõö÷ øùúû üýþÿ
MacRoman
  0123 4567 89AB CDEF
8 ÄÅÇÉ ÑÖÜá àâäã åçéè
9 êëíì îïñó òôöõ úùûü
A °¢£ §ß ®©´ ¨ÆØ
B ± ¥µ πª ºΩæø
C ¿¡¬ ƒ« » À ÃÕŒœ
D ÷ ÿŸ
E · ÂÊÁ ËÈÍÎ ÏÌÓÔ
F ÒÚÛ Ùıˆ˜ ¯˘˙˚ ¸˝˛ˇ

Windows-1250, 1252   (CP1252, 'ANSI')

Wie in vielen anderen Bereichen torpediert der IT-Marktführer auch bei den Zeichencodes die geltenden internationalen Standards. So wird versucht, die KundInnen zur ausschließlichen Verwendung der Software dieses Herstellers zu nötigen. Die meisten M$-AnwenderInnen empfinden das mittlerweile als normal. Das freut den Marktführer und kostet die KundInnen eine Menge Geld...

Zeichen 127

Das Zeichen 127. (#7F, DEL) ist als nicht druckbares Steuerzeichen 'Delete' definiert.
Bei der Ausgabe wird es auf der → Konsole cmd.exe meist als Unicode-Zeichen 8962. (hex #2302)   angezeigt. Das fällt jedoch kaum auf, da DEL normalerweise nicht als Zeichen verwendet wird.

Bereich 128-159

Der Bereich 128. bis 159. (#80..#9F) ist nach Standard → ISO-8859für nicht druckbare Steuerzeichen reserviert. M$ verwendet ihn für einige Zeichen, darunter das häufig benötigte €-Zeichen.
Diese abweichende Interpretation ist als 'Windows 1250-Familie' bekannt. Niemand braucht so viele Steuerzeichen, daher wäre es durchaus sinnvoll, diese 32 Zeichen auch zu verwenden.
Heute zeigen fast alle PC (teilweise auch Linux) die Zeichen 128. bis 159. nach Windows-1252 an und nicht (wie meist geglaubt wird) nach ISO-8859-1. Ein besonderer Nachteil der → ISO-8859-Standards ist die Einschränkung auf nur 96 eigene Zeichen pro Zeichensatz. Bei zusätzlicher Verwendung dieser 32 Zeichen hätte man in jedem ISO-Zeichensatz 128 Zeichen (+ 33%) mehr eigene Zeichen untergebracht.
Wenn sie selbst entwickeln, dann sollten keinesfalls Windows-1252 verwenden (veraltet ebenso rasch wie → ISO-8859), sondern → Unicode

Unicode-Zeichen werden von allen neueren Programmen unterstützt - auch von M$-Programmen !

Rechts eine unverbindliche Ersatz-Liste:
Zu jedem Zeichen dieses Bereichs links der Win-1252 Code, rechts der Unicode - und zwar von ihrem Browser interpretiert. Das Euro-Zeichen in der ersten Zeile wird hier z.B. mit → HTML-Code € erzeugt.
Für alle Win-1252-Codes gibt es einen passenden Unicode-Ersatz, der übrigens auch in M$-Programmen richtig angezeigt wird.

In den meisten praktischen Fällen ist ohnehin nur das Euro-Zeichen betroffen - Für Webseiten halten sie sich aus dem Code-Konflikt heraus, indem sie nur € für verwenden.

Einige Zeichen dieses Bereichs wurden von M$ (noch) nicht verwendet und werden hier leer angezeigt: #81, #8D, #8F, #90, #9D
Win UniWin Uni
#80#20AC#90  
#81  #91#2018
#82#201A#92#2019
#83ƒ#0192#93#201C
#84#201E#94#201D
#85#2026#95#2022
#86#2020#96#2013
#87#2021#97#2014
#88ˆ#02C6#98˜#02DC
#89#2030#99#2122
#8AŠ#0160#9Aŝ#015D
#8B#2039#9B#203A
#8CŒ#0152#9Cœ#0153
#8D  #9D  
#8EŽ#017D#9Ež#017E
#8F  #9FŸ#0178
Unicode und ISO-8859-1
  0123 4567 89AB CDEF
8 PADHOPBPHNBH INDNELSSAESA HTSHTJVTSPLD PLURISS2SS3
9 DCSPU1PU2STS CCHMWSPAEPA SOSSGCISCICSI STOSCPMAPC
Windows-1252
  0123 4567 89AB CDEF
8  ƒ ˆŠ Œ Ž 
9   ˜ŝ œ žŸ
M$ Office Import:
Es ist nach bisherigen Erfahrungen kaum möglich, Text-Daten ohne Änderung in M$-Office Programme zu importieren, außer mit einem eigens dazu hergestellten VBA-Programm.
Jede (!) der zahlreichen Zeichensatz-Optionen ändert den Code zumindest einiger importierter Zeichen, darüber hinaus können Zeichen (z.B. Tab, Leerzeichen, Strichpunkt, ..) unterdrückt werden. Wenn Import-Daten irrtümlich als Datum und / oder Zeit interpretiert werden, dann werden sie in eine Zahl (→ internes Format Y1900) umgewandelt.
Leider fehlen offenbar die wichtigen Optionen zum Import von Unicode- oder UTF-8 Dateien ebenso wie die weniger wichtigen für EBCDIC oder LICS.
Open Office Import:
Beim Versuch, eine Text-Datei zu öffnen, wird diese ungefragt in einem Text-Dokument geöffnet und (vermutlich je nach Betriebssystem) ungefragt (!) gefiltert (Win-1252) - höchst unbefriedigend.
Nur wenn man beim Öffnen die Option 'Dateityp' verwendet, dann wird der entsprechende Filter angewendet, allerdings werden dann nur ganz bestimmte Dateinamen angezeigt. Optionen für Unicode oder UTF-8 fehlen, und Dateien wie z.B. 'test.dat' können nur dann mit einem bestimmten Filter geöffnet werden, wenn man sie entsprechend umbenennt (z.B. 'test.txt').
Nur beim Versuch, Binärdateien zu öffnen, werden auch die Filter Unicode, UTF-7 und UTF-8 angeboten, dazu noch die Option 'Sprache' (?), die man allerdings auf 'Keine' setzen kann.

Firmen-Chauvinismus bei M$ Frontpage:

Webseiten werden von diesem Programm prinzipiell mit dem Zeichensatz Windows-125* erstellt. Man kann die Einstellung zwar ändern (Extras | Seitenoptionen | Standardschriftarten), das wagen jedoch nur wenige erfahrene AnwenderInnen. Die Verwendung eines firmen-eigenen Zeichensatzes für ein globales Medium ist geradezu grotesk arrogant und natürlich ein schwerer Fehler.
So sieht es im <head> von Frontpage-Webseiten aus, wenn sie die Standard-Einstellungen verwenden:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
Verwenden sie unbedingt einen Standard Zeichensatz, noch besser einen wirklich brauchbaren HTML Editor.

Die Einstellung CP-1252 wird auch im Text beibehalten: Umlaute werden leider nicht HTML-codiert sondern nach Firmen-Vorgabe. Beispiel:
Windows-1252eine größere Übung
Standard HTMLeine gr&ouml;&szlig;ere &Uuml;bung
Das hat zur Folge, dass ihre Webseiten je nach System und Browser meist fehlerhaft angezeigt werden.
Verwenden sie unbedingt Standard HTML Codierung für ihre Webseiten - Das funktioniert weltweit auf allen Systemen, mit allen Browsern, natürlich auch mit M$IE.
Details zu HTML-Zeichencodes

Hinweise für EntwicklerInnen

Die verfügbare Dokumentation über die hier vorgestellten und andere Hersteller-spezifische Zeichensätze ist leider oft spärlich, lückenhaft und sogar widersprüchlich. Ein Grund mehr, sich lieber an den Unicode-Standard zu halten. Deshalb wurde in diesem Web versucht, die verfügbaren Angaben durch experimentelle Daten zu ergänzen und zu testen.
Experimente mit Zeichensätzen können sie selbst ausführen:
Erzeugen sie Test-Strings, z.B. alle Zeichen 32-126 (ASCII-Bereich ohne Steuerzeichen), 32-255 oder 0-255. Dazu eignet sich jede Programmiersprache, besonders gut natürlich → Perl.
Versuchen sie, diese Strings in verschiedene Programme zu importieren, danach zu exportieren. Der Import kann durch Lesen der Dateien erfolgen (dabei können sie die verschiedenen Import-Optionen testen), aber auch durch Kopieren und Einsetzen. Beachten sie, dass die Daten durch jeden einzelnen Vorgang verändert werden können, auch dann, wenn das vom betreffenden Programm nicht angezeigt oder erwartet wird.

Die Ergebnisse lassen sich mit verschiedenen Mitteln analysieren, am besten mit einem Hex-Editor Programm - solche Programme sind als einzige vertrauenswürdig, da sie nur die Zahlenwerte der einzelnen Bytes anzeigen und keine Interpretation versuchen (mit Ausnahme von Byte-Werten 32..127, die oft zusätzlich im ASCII-Code angezeigt werden).
Besondere Vorsicht ist wie immer bei M$ angebracht:
Die Excel-Funktionen Zeichen und Code ebenso wie die VBA-Funktionen Asc und Chr arbeiten nicht mit dem Standard sondern mit → Win-1252, darüber hinaus nur bis Code=255.
So liefert z.B. Code ebenso wie Asc für das €-Zeichen den Wert 128 an Stelle des Standard Unicode-Werts von 8364.
Die VBA-Funktionen AscW und ChrW arbeiten korrekt mit Standard Unicode U+0000 bis U+FFFF, allerdings muss man bei AscW einen Fehler abfangen, damit keine negativen Unicode-Werte geliefert werden.
Die VBA-Funktion StrConv sollte zwar u.a. Unicode-Umwandlungen durchführen. Sie hält jedoch nicht, was sie verspricht.
Details dazu auf der Unicode-Seite.

M$ Office-Programme bieten für den Text-Import zahlreiche sinnvolle Optionen. Jedes importierte Zeichen läuft durch den ausgewählten Filter, welches den Zeichencode entsprechend umsetzt.
Allerdings wird (bisher) keine Import-Option 'ohne Filter' angeboten, d.h. einige Zeichencodes werden immer verändert ! Außerdem gibt es derzeit noch keine Import-Optionen für die wichtigen Standards Unicode und UTF sowie (weniger wichtig) für EBCDIC oder LICS.

XHTML CSS