JSON-Formatierer
JSON formatieren, prüfen und minifizieren, mit genauer Fehlerstelle.
Entwicklung
HTML-Entities für Umlaute und Sonderzeichen.
Das ist der wichtigste Punkt für deutschsprachige Seiten und widerspricht einer weit verbreiteten Gewohnheit.
Schreibweisen wie ä für ä, ö für ö, ü für ü und ß für ß stammen aus einer Zeit, in der die Zeichenkodierung einer Seite unklar oder auf Latin-1 beschränkt war.
Heute nutzt praktisch jede Seite UTF-8. Damit kannst du ä, ö, ü und ß direkt schreiben, und sie werden überall korrekt dargestellt.
Voraussetzung ist nur zweierlei: Die Datei muss tatsächlich in UTF-8 gespeichert sein, und im Kopf der Seite muss die Zeichenkodierung deklariert sein. Fehlt die Deklaration, rät der Browser — und rät im Zweifel falsch.
Kodierte Umlaute haben handfeste Nachteile: Der Quelltext wird unleserlich, Suchen und Ersetzen funktioniert nicht mehr zuverlässig, und die Datei wird größer.
Wenn du also einen deutschen Text kodiert vorfindest, ist das Werkzeug hier vor allem nützlich, um ihn wieder zu entschlüsseln.
Nur eine Handvoll Zeichen hat in HTML eine syntaktische Bedeutung.
| Zeichen | Entity | Wann nötig |
|---|---|---|
| & | & | immer |
| < | < | immer |
| > | > | im Text empfohlen |
| " | " | in Attributwerten |
| ' | ' | in Attributwerten |
Das kaufmännische Und ist der wichtigste Fall, weil es eine Entity einleitet. Ein rohes & in einer URL — etwa als Trennzeichen zwischen Parametern — muss als & geschrieben werden, sonst ist das HTML nicht valide.
Kleiner- und Größerzeichen sind der zweite Fall, weil sie Tags eröffnen und schließen.
Und genau hier liegt der sicherheitsrelevante Kern: Wenn du Text von Nutzern ausgibst, ist das Kodieren dieser Zeichen der Schutz gegen Cross-Site-Scripting. Wird eine Eingabe ungefiltert ins HTML geschrieben, kann sie ausgeführten Code enthalten.
Verlass dich dafür aber nicht auf ein Werkzeug wie dieses, sondern auf die Escaping-Funktion deines Frameworks oder deiner Template-Engine. Die kennt den Kontext — HTML-Text, Attribut, JavaScript, URL — und jeder Kontext braucht ein anderes Escaping.
Ein paar Zeichen, die sich als Entity lohnen, weil sie im Quelltext unsichtbar wären.
Das geschützte Leerzeichen verhindert einen Zeilenumbruch an dieser Stelle. Im Deutschen ist das nützlich zwischen Zahl und Einheit — 5 kg — oder in Abkürzungen wie z. B., damit sie nicht getrennt werden.
Vorsicht allerdings: wird oft missbraucht, um Abstände zu erzeugen. Dafür ist CSS zuständig.
Typografisch korrekte deutsche Anführungszeichen sind „ und “ — also die Form „so herum". Sie lassen sich auch direkt schreiben, wenn deine Umgebung das erlaubt.
Der Gedankenstrich ist im Deutschen ein Halbgeviertstrich, –, mit Leerzeichen darum — nicht der kurze Bindestrich.
Und schließlich unsichtbare Zeichen: Wenn beim Kopieren aus Word oder aus einer PDF-Datei merkwürdige Umbrüche entstehen, stecken oft geschützte Leerzeichen oder weiche Trennzeichen darin. Sie sichtbar zu machen ist ein guter Grund, Text hier einmal durchlaufen zu lassen.
Nein. Mit UTF-8 schreibst du ä, ö, ü und ß direkt, sofern die Kodierung deklariert ist.
Vor allem & und <, in Attributwerten außerdem Anführungszeichen.
Weil es eine Entity einleitet. In URLs muss es als & geschrieben werden.
Ja, aber nutz dafür das Escaping deines Frameworks, das den Kontext kennt.
Um Umbrüche zu verhindern, etwa zwischen Zahl und Einheit. Nicht für Abstände — dafür gibt es CSS.
Nein, alles läuft in deinem Browser.