Zeichensalat
# Zeichensalat

Mit Zeichensalat wird der Zustand falsch dargestellter Zeichen bezeichnet, der anstelle der gewünschten Schriftzeichen vor allem im Internet auftritt. Während der Frühzeit des Internets trat dieser Zustand bei fast allen Sprachen auf, die über reines ASCII hinausgehende Zeichensätze verwenden. Das sind nahezu alle Sprachen außer Englisch (sofern fremdsprachliche Diakritika wie in naïve, café oder résumé konsequent weggelassen werden). Im Deutschen waren beispielsweise die Umlaute und das ß häufig betroffen. Mit der Einführung von Unicode wurde zwar 1991 technisch eine Grundlage geschaffen, um das Problem auf lange Sicht zu beheben, dennoch bereiten Datenaustauschverfahren, die keine einheitliche Zeichencodierung vorschreiben, selbst im Jahr 2020 noch derartige Probleme.

Im Japanischen wird das Problem als Mojibake (japanisch 文字化け, „Buchstabenverwandlung“) bezeichnet, im Russischen als krakosjábry (кракозябры) und im Chinesischen als luànmǎ (亂碼 / 乱码, „wirre Kodierung“).

## Beispiele

| Ausgangskodierung | Webbrowser-Einstellung | Anzeige im Webbrowser |
| - | - | - |
| UTF-8 | UTF-8 | Falsches Üben von Xylophonmusik quält jeden größeren Zwerg. |
| UTF-8 | ISO 8859-1 | Falsches Ãœben von Xylophonmusik quÃ¤lt jeden grÃ¶ÃŸeren Zwerg. |
| ISO 8859-1 | ISO 8859-1 | Falsches Üben von Xylophonmusik quält jeden größeren Zwerg. |
| ISO 8859-1 | UTF-8 | Falsches �ben von Xylophonmusik qu�lt jeden gr��eren Zwerg. |
| Windows-1251 | Windows-1251 | Широкая электрификация южных губерний даст мощный толчок подъёму сельского хозяйства. |
| Windows-1251 | ISO 8859-1 | Øèðîêàÿ ýëåêòðèôèêàöèÿ þæíûõ ãóáåðíèé äàñò ìîùíûé òîë÷îê ïîäú¸ìó ñåëüñêîãî õîçÿéñòâà. |
| Windows-1251 | KOI8-R | ьХПНЙЮЪ ЩКЕЙРПХТХЙЮЖХЪ ЧФМШУ ЦСАЕПМХИ ДЮЯР ЛНЫМШИ РНКВНЙ ОНДЗ╦ЛС ЯЕКЭЯЙНЦН УНГЪИЯРБЮ. |
| Windows-1251 | ISO 8859-5 | иш№юърџ §ыхъђ№шєшърішџ ўцэћѕ уѓсх№эшщ фрёђ ьюљэћщ ђюыїюъ яюфњИьѓ ёхыќёъюую ѕючџщёђтр. |
| Windows-1251 | Codepage 866 | ╪шЁюър ¤ыхъЄЁшЇшърЎш ■цэ√ї уєсхЁэшщ фрёЄ ью∙э√щ Єюыўюъ яюф·╕ьє ёхы№ёъюую їюч щёЄтр. |
| Shift JIS | Shift JIS | 文字化け（もじばけ）とは、コンピュータで文字を表示する際に、正しく表示されない現象のこと。 |
| Shift JIS | Macintosh Roman | ï∂éöâªÇØÅiÇ‡Ç∂ÇŒÇØÅjÇ∆ÇÕÅAÉRÉìÉsÉÖÅ[É^Ç≈ï∂éöÇï\é¶Ç∑ÇÈç€Ç…ÅAê≥ÇµÇ≠ï\é¶Ç≥ÇÍÇ»Ç¢åªè€ÇÃÇ±Ç∆ÅB |
| KOI8 oder KOI7 (russischer Modus) | KOI8 oder KOI7 (russischer Modus) | Русский Текст |
| KOI8 oder KOI7 (russischer Modus) | ASCII oder KOI7 (lateinischer Modus) | rUSSKIJ tEKST |

Die KOI-Kodierungen bieten eine Besonderheit, die das letzte Beispiel zeigt: Werden sie fälschlicherweise als ASCII interpretiert (und dafür im Falle von KOI8 das höchstwertige Bit ignoriert), entsteht eine grobe lateinische Transliteration mit vertauschten Groß- und Kleinbuchstaben. Da das kyrillische Alphabet mehr Buchstaben als das lateinische hat, werden einige kyrillische Buchstaben zu Satzzeichen.

## Codierte Daten

Zeichensalat kann auch absichtlich verwendet werden, um beliebige Daten an Stellen zu speichern oder zu übertragen, an denen nur bestimmte Zeichen möglich sind, zum Beispiel beim Verwendungszweck einer Banküberweisung oder in Internetadressen.

In Internetadressen wird zu diesem Zweck häufig das Base64-Verfahren eingesetzt. Es erzeugt aus beliebigen Daten einen Text, der nur aus den Buchstaben A–Z, a–z, den Ziffern 0–9 und den Sonderzeichen +, / und = besteht. Mit Base64 codierte Daten sehen so aus:

    RGllc2VyIFRleHQgaXN0IG5pY2h0IHZlcnNjaGzDvHNzZWx0Lg==

Auf den ersten Blick ist nicht zu erkennen, was dieser Zeichensalat an Daten enthält. Wenn man jedoch die Base64-Codierung rückwärts anwendet, entsteht dieser Text:

    Dieser Text ist nicht verschlüsselt.

Einige Websites verwenden dieses Codierungsverfahren, um die eigentlichen Daten nicht offensichtlich in der URL preiszugeben.

## Buchstabensalat

Zeichensalat/Mojibake kann als Spezialfall von Buchstabensalat betrachtet werden. Darunter sind allgemein schwer oder nicht zu entziffernde Zeichenfolgen zu verstehen, die auch aus anderen Gründen außer einer fehlerhaften Kombination verschiedener Zeichenkodierungen entstanden sein können.

## Einzelnachweise und Anmerkungen

* ↑ Hier wird zumindest das von Unicode dafür vorgesehene Ersetzungszeichen verwendet.
