Fügen Sie beliebigen Text ein und erhalten Sie ihn in allen gängigen Schreibweisen sowie als URL-Slug.
Geben Sie Text ein oder fügen Sie ihn ein, um ihn umzuwandeln.
Wann welche Schreibweise
Namenskonventionen richten sich vor allem nach der verwendeten Sprache. JavaScript und Java nutzen camelCase für Variablen und PascalCase für Klassen und Komponenten. Python und Rust verwenden snake_case für Variablen und Funktionen. CSS-Klassen, Dateinamen und URLs nutzen kebab-case. CONSTANT_CASE kennzeichnet unveränderliche Werte.
Der URL-Slug geht über kebab-case hinaus: Er entfernt zusätzlich Akzente und Satzzeichen, sodass „Zażółć gęślą jaźń!" zu einem sauberen, sicheren Adressteil wird. Das macht ihn zur richtigen Wahl für Seiten-URLs, Dateinamen und Ankerlinks.
straße in Großbuchstaben ergibt eine längere Zeichenkette, und zurück in Kleinbuchstaben ein anderes Wort
Eine Änderung der Groß- und Kleinschreibung sieht nach einem Tausch Zeichen für Zeichen aus. Sie ist es nicht. Das ß wird zu SS, aus einem sechsstelligen Wort werden also sieben Zeichen — und das Ergebnis wieder klein geschrieben ergibt strasse, nicht das Ausgangswort. Die Umwandlung kann die Länge ändern, ist nicht umkehrbar und hängt von der Sprache der Lesenden ab.
So wird gerechnet
- Wandelt zwischen Groß-, Klein-, Titel-, Satz- sowie camel-, snake- und kebab-Schreibweise um.
- Nutzt sprachbewusste Umwandlung, denn das richtige Ergebnis unterscheidet sich je Sprache.
- Behandelt Zeichen, deren Fallwechsel die Länge der Zeichenkette verändert.
Groß- und Kleinschreibung sind KEINE Umkehroperationen straße → STRASSE → strasse (6 → 7 → 7 Zeichen) die Sprache zählt: "I".toLowerCase() → "i" türkische Locale → "ı" (U+0131, punktlos)
Rechenbeispiel
Zwei Fälle, in denen die naive Umwandlung falsch ist.
- straße hat 6 Zeichen
- groß geschrieben → STRASSE, 7 Zeichen
- wieder klein → strasse, weiterhin 7 und nicht mehr das Ausgangswort
- "I" klein geschrieben auf Englisch → "i"
- "I" klein geschrieben auf Türkisch → "ı", ein völlig anderes Zeichen
Die Länge hat sich geändert, der Hin- und Rückweg hat Information verloren, und die richtige Antwort für eine der Eingaben hängt davon ab, wer sie liest. Jeder Code, der die Fallumwandlung für eine umkehrbare Eins-zu-eins-Abbildung hält, irrt in beiden Punkten.
Das Ergebnis lesen
- Führen Sie zum Vergleichen nie eine Fallumwandlung allein mit toUpperCase oder toLowerCase durch. Unicode definiert genau dafür eine eigene Case-Folding-Operation; die anzeigeorientierte Umwandlung zum Vergleich von Bezeichnern zu verwenden erzeugt Abweichungen, die nur bei bestimmten Sprachen auftreten.
- Das türkische i mit und ohne Punkt ist der klassische Locale-Fehler. Ein ASCII-I in türkischer Locale klein geschrieben ergibt ı, ein Vergleich von Dateinamen, Befehlen oder Benutzernamen ohne Rücksicht auf Groß- und Kleinschreibung scheitert also stillschweigend bei türkischen Nutzenden und sonst bei niemandem.
- Titelschreibung ist keine Unicode-Operation, sondern eine redaktionelle Konvention, und sie unterscheidet sich zwischen Stilhandbüchern und zwischen Sprachen. Das Deutsche schreibt alle Substantive groß; englische Stilhandbücher sind sich über kurze Präpositionen untereinander uneins. Keine Bibliothekseinstellung macht das überall richtig.
- Programmier-Schreibweisen bringen eigene Gefahren mit. Die Umwandlung nach camelCase und über snake_case zurück ist verlustbehaftet, sobald Abkürzungen im Spiel sind — parseHTTPResponse und parseHttpResponse bilden auf dieselbe snake-Form ab und lassen sich auf dem Rückweg nicht unterscheiden.
Häufige Fragen
- Warum wurde mein Text nach dem Großschreiben länger?
- Weil manche Zeichen sich ausdehnen. Das ß wird zu SS, und mehrere Ligaturen zerfallen ebenso. Jedes Layout, jede Datenbankspalte und jede Validierungsregel, die annimmt, die Fallumwandlung erhalte die Länge, bricht irgendwann an echten Eingaben.
- Wie vergleiche ich zwei Zeichenketten ohne Rücksicht auf Groß- und Kleinschreibung?
- Verwenden Sie Case Folding statt Groß- oder Kleinschreibung und geben Sie die Locale an, wenn ein Sprachkontext existiert. Naives Kleinschreiben ist für ASCII korrekt und liefert für Türkisch, Deutsch und einige weitere Sprachen falsche Ergebnisse.