Case sensitivityDer englische Ausdruck case sensitivity bezeichnet in der elektronischen Datenverarbeitung allgemein die Art und Weise, in der eine Benutzerschnittstelle oder Programmiersprache die Unterscheidung von Groß- und Kleinbuchstaben handhabt. Das Wort leitet sich von „(letter) case“ für „Fach“ ab, abgeleitet von den Fächern (englisch type cases) des Setzkastens, in denen Drucker die verschiedenen Drucklettern aufbewahrten, und „(in)sensitivity“ für „(Un-)Empfindlichkeit bzw. (Un-)Abhängigkeit“. Konkret bedeutet case-sensitive (eingedeutscht „case-sensitiv“), dass Majuskeln und Minuskeln als unterschiedlich angesehen werden. Das Gegenteil ist case-insensitive (eingedeutscht „case-insensitiv“). ProblemViele Schriftsysteme unterscheiden Groß- und Kleinbuchstaben. Ob diese als identisch gelten oder unterschieden werden sollen, spielt vor allem dann eine Rolle, wenn eine Zeichenfolge etwas eindeutig bezeichnen soll (wie etwa einen Dateinamen) und bei der alphabetischen Sortierung. Ein menschlicher Bibliothekar oder Nutzer eines Telefonbuchs versteht ohne weiteres Nachdenken den Groß- und Kleinbuchstaben als Varianten voneinander, da er die entsprechende kulturelle Konvention kennt. Ein Computer hingegen verwendet unterschiedliche interne Codes dafür – bei ASCII etwa den Binärwert Eine beiden Zahlenwerten innewohnende Verwandtschaft zueinander gibt es auf maschineller Ebene nur ansatzweise – bei der Festlegung der 8-Bit-ASCII-Codes war zwar darauf geachtet worden, dass sich die beiden Buchstaben nur in einem einzigen Bit unterscheiden. Dies gilt aber nicht für Buchstaben mit diakritischen Zeichen wie etwa die deutschen Umlaute. Um also auch eine nicht-sensitive Behandlung von Textdaten auf Rechensystemen verfügbar zu machen, muss durch Einsatz programmiertechnischer Mittel eine Abstraktionsschicht über das native Datenverständnis der Maschine gelegt werden, die das oben angesprochene menschliche Textverständnis nachahmt. Diese als Normalisierung bezeichnete Abstraktion blendet Unterschiede zwischen großen und kleinen Buchstaben aus. DateisystemeEin bekanntes Beispiel für die unterschiedliche Behandlung von Textdaten sind die auf den Betriebssystemen Unix und Windows jeweils vorherrschenden Dateisysteme. Während die für Unix typischen Dateisysteme case-sensitiv sind, wurde Windows über längere Zeit mit Dateisystemen ausgeliefert, die nicht case-sensitiv waren. Zum Beispiel sind im geschichtlich aus der DOS-Vergangenheit stammenden Windows-Dateisystem FAT32 Die von macOS verwendeten Dateisysteme HFS+ und APFS (ab macOS High Sierra) werden standardmäßig case-insensitive verwendet, können aber umgeschaltet werden. Unter iOS werden sie nur case-sensitive eingesetzt. Dieses unterschiedliche Verhalten kann zu Problemen beim Datenaustausch auf Dateiebene führen, etwa bei physischen Datenträgern wie USB-Sticks oder in gemischten Netzwerken bei dem Versuch, zwei Dateien mit gleichem Dateinamen in unterschiedlicher Schreibung von einem Unix-System in dasselbe Verzeichnis eines Windows-Systems zu kopieren. Unerwartet kann auch eine Sortierung sein, die sich auf die Maschinen-interne Codierung verlässt und zunächst alle lateinischen Großbuchstaben, dann die lateinischen Kleinbuchstaben und schließlich die Buchstaben mit diakritischen Zeichen, hier aber jeder Großbuchstabe gefolgt vom zugehörigen Kleinbuchstaben, anordnet. Auch im Internet kann der Nutzer auf dieses Phänomen stoßen: In einem URL ist die Domain immer case-insensitiv, der Dateipfad (der Teil hinter dem ersten Schrägstrich) hängt jedoch vom Server und dessen Betriebssystem ab. (Auch E-Mail-Adressen sind meist case-insensitiv.) ProgrammiersprachenOb case sensitivity vorliegt, ist auch bei Programmiersprachen von Bedeutung: Die Symbole sind bei C oder Perl abhängig von Groß-/Kleinschreibung, bei anderen Sprachen wie ooRexx, Pascal oder Visual Basic Classic jedoch nicht. Wieder andere Sprachen, beispielsweise PHP, verwenden unterschiedliche Prinzipien bei den Namen von Variablen und Funktionen. Unterscheidet die Programmiersprache Groß- und Kleinbuchstaben, dann können Variablennamen wie SucheSuchmaschinen verwenden immer eine eigene Datenbank, den „Index“. Alle zu durchsuchenden Texte werden dort typischerweise zweimal abgelegt – neben der Anzeigeversion eine für den Suchvorgang optimierte, („normalisierte“) Version, meist ausschließlich in Kleinbuchstaben. So kann der Vergleich beim eigentlichen Suchvorgang wesentlich beschleunigt werden. Siehe auchWeblinksEnglisch:
Einzelnachweise
|
Portal di Ensiklopedia Dunia