Case sensitivity
Der englische Ausdruck {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value) 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 „{{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value)“ für „Fach“ ab, abgeleitet von den Fächern ({{Modul:Vorlage:lang}} Modul:Vorlage:lang:103: attempt to index field 'wikibase' (a nil value)) des Setzkastens, in denen Drucker die verschiedenen Drucklettern aufbewahrten, und „{{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value)“ für „(Un-)Empfindlichkeit bzw. (Un-)Abhängigkeit“.
Konkret bedeutet {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value) (eingedeutscht „case-sensitiv“), dass Majuskeln und Minuskeln als unterschiedlich angesehen werden. Das Gegenteil ist {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value) (eingedeutscht „case-insensitiv“).
Problem
Viele 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 01000001 mit dem Dezimalwert 65 für den Großbuchstaben „A“ und den Binärwert 01100001 (dezimal 97) für den Kleinbuchstaben „a“. Um diese gleichzusetzen, sind zusätzliche Abfragen, Konvertierungen oder Vereinheitlichungen nötig.
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.
Dateisysteme
Ein 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 {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value)-sensitiv sind, wurde Windows über längere Zeit mit Dateisystemen ausgeliefert, die nicht {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value)-sensitiv waren. Zum Beispiel sind im geschichtlich aus der DOS-Vergangenheit stammenden Windows-Dateisystem FAT32 Name.txt und NAME.TXT ein und derselbe Dateiname (und somit dieselbe Datei), im {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value) (UFS) unter z. B. BSD-Unix und im extended-Dateisystem unter Linux hingegen sind es zwei unterschiedliche Dateinamen. Das Windows-Dateisystem NTFS ist an sich {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value)-sensitiv ausgelegt, der Zugriff auf Dateien im Betriebssystem bleibt jedoch (u. a. der Kompatibilität wegen) {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value)-insensitiv. Damit ist auch das Anlegen von Dateien nicht möglich, die sich nur in der Groß- und Kleinschreibung unterscheiden. Allerdings speichern NTFS und die FAT-Erweiterung VFAT die bei der Erstellung oder Dateioperation verwendete Groß- und Kleinschreibung, die auch bei der Anzeige so wiedergegeben wird ({{Modul:Vorlage:lang}} Modul:Vorlage:lang:103: attempt to index field 'wikibase' (a nil value)).<ref>Vorlage:Cite book/Name: [Internetquelle: archiv-url ungültig Filenames are Case Sensitive on NTFS Volumes.] Support.microsoft.com, , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 24. Oktober 2013 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref>
Die von macOS verwendeten Dateisysteme HFS+ und APFS (ab macOS High Sierra) werden standardmäßig {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value) verwendet, können aber umgeschaltet werden. Unter iOS werden sie nur {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value) 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 {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value)-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 {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value)-insensitiv.)
Programmiersprachen
Ob {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value) 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 RechnungSkonto und RechnungsKonto im selben Code verwendet werden; andernfalls kann dies zu verwirrenden Fehlern führen.
Suche
Suchmaschinen 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 auch
Weblinks
Englisch:
- xahlee.org: On Unix File System's Case Sensitivity
- Sorting It All Out: Intuitivosity (intuitivality?) of case insensitivity
Einzelnachweise
<references />