Wikipedia · einfach zusammengefasst · Stand
Case sensitivity
Konkret bedeutet case-sensitive (eingedeutscht „case-sensitiv“), dass Majuskeln und Minuskeln als unterschiedlich angesehen werden. Das Gegenteil ist case- …
Inhalt5 Abschnitte
Grundidee
Case sensitivity bezeichnet in der elektronischen Datenverarbeitung, wie eine Benutzerschnittstelle oder Programmiersprache mit Groß- und Kleinbuchstaben umgeht. Case-sensitive bedeutet, dass Majuskeln, also Großbuchstaben, und Minuskeln, also Kleinbuchstaben, als verschieden gelten. Case-insensitive bedeutet, dass dieser Unterschied nicht zählt.
Wichtig wird diese Frage immer dann, wenn eine Zeichenfolge etwas eindeutig bezeichnen soll, zum Beispiel einen Dateinamen, oder wenn Texte alphabetisch sortiert werden. Menschen erkennen Groß- und Kleinbuchstaben meist als Varianten desselben Buchstabens. Ein Computer verarbeitet sie dagegen zunächst als unterschiedliche Codes.
Technisches Problem
In Zeichencodierungen wie ASCII haben Groß- und Kleinbuchstaben verschiedene Werte. Der Großbuchstabe „A“ hat dort den Binärwert 01000001 und den Dezimalwert 65, der Kleinbuchstabe „a“ den Binärwert 01100001 und den Dezimalwert 97. Für den Computer sind das unterschiedliche Zeichen.
Damit ein Rechensystem Groß- und Kleinbuchstaben gleichbehandelt, braucht es zusätzliche Schritte wie Abfragen, Konvertierungen oder Vereinheitlichungen. Bei den 8-Bit-ASCII-Codes wurde zwar darauf geachtet, dass sich entsprechende Groß- und Kleinbuchstaben nur in einem Bit unterscheiden. Das gilt aber nicht allgemein, etwa nicht für Buchstaben mit diakritischen Zeichen wie deutsche Umlaute.
Eine nicht-sensitive Behandlung von Textdaten entsteht deshalb durch programmiertechnische Mittel. Dabei wird eine Abstraktionsschicht über das maschinelle Datenverständnis gelegt. Diese Normalisierung blendet Unterschiede zwischen großen und kleinen Buchstaben aus und ahmt damit das menschliche Textverständnis nach.
Dateisysteme und Internet
Dateisysteme behandeln Groß- und Kleinschreibung unterschiedlich. Typische Unix-Dateisysteme sind case-sensitiv. Windows wurde dagegen lange mit Dateisystemen ausgeliefert, die nicht case-sensitiv waren. Im Windows-Dateisystem FAT32 bezeichnen Name.txt und NAME.TXT dieselbe Datei. Im Unix File System (UFS), etwa unter BSD-Unix, und im extended-Dateisystem unter Linux sind es zwei unterschiedliche Dateinamen.
NTFS, ein Windows-Dateisystem, ist an sich case-sensitiv ausgelegt. Der Zugriff über das Betriebssystem bleibt aber unter anderem aus Kompatibilitätsgründen case-insensitiv. Deshalb können dort normalerweise keine Dateien angelegt werden, die sich nur durch Groß- und Kleinschreibung unterscheiden. NTFS und die FAT-Erweiterung VFAT speichern jedoch die beim Erstellen oder Bearbeiten verwendete Schreibweise und zeigen sie auch so an; das heißt case-preserving.
macOS verwendet HFS+ und APFS, ab macOS High Sierra. Diese Dateisysteme werden standardmäßig case-insensitive verwendet, können aber umgeschaltet werden. Unter iOS werden sie nur case-sensitive eingesetzt.
Unterschiedliches Verhalten kann beim Datenaustausch Probleme verursachen, zum Beispiel auf USB-Sticks oder in gemischten Netzwerken. Wenn zwei Dateien auf einem Unix-System gleich heißen und sich nur in der Schreibung unterscheiden, können sie nicht ohne Weiteres in dasselbe Verzeichnis eines Windows-Systems kopiert werden. Auch Sortierungen können überraschend wirken, wenn sie der internen Codierung folgen, etwa wenn zuerst lateinische Großbuchstaben, dann Kleinbuchstaben und danach Buchstaben mit diakritischen Zeichen erscheinen.
Im Internet ist bei einem URL die Domain immer case-insensitiv. Der Dateipfad, also der Teil hinter dem ersten Schrägstrich, hängt dagegen vom Server und dessen Betriebssystem ab. E-Mail-Adressen sind meist case-insensitiv.
Programmiersprachen
Auch Programmiersprachen unterscheiden sich darin, ob sie Groß- und Kleinschreibung beachten. In C oder Perl sind Symbole von der Groß- und Kleinschreibung abhängig. Andere Sprachen wie ooRexx, Pascal oder Visual Basic Classic sind in dieser Hinsicht nicht case-sensitiv.
Manche Sprachen verwenden unterschiedliche Regeln je nach Art des Namens. PHP nutzt zum Beispiel verschiedene Prinzipien bei Variablennamen und Funktionsnamen.
Wenn eine Programmiersprache case-sensitiv ist, können Namen wie RechnungSkonto und RechnungsKonto im selben Code unterschiedliche Variablen oder Symbole bezeichnen. Wenn sie nicht case-sensitiv ist, kann eine solche ähnliche Schreibweise zu verwirrenden Fehlern führen.
Suche
Suchmaschinen arbeiten mit einer eigenen Datenbank, dem Index. Alle durchsuchbaren Texte werden dort typischerweise zweimal gespeichert: einmal als Anzeigeversion und einmal in einer für die Suche optimierten, normalisierten Version.
Diese normalisierte Version besteht meist ausschließlich aus Kleinbuchstaben. Dadurch kann der Vergleich beim Suchvorgang deutlich schneller ablaufen, weil die Suche nicht jedes Mal Groß- und Kleinschreibung einzeln berücksichtigen muss.