Zum Inhalt springen
Ghostchars

Was Ghostchars erkennt

Jede Kategorie, die die Engine melden kann, die dafür zuständige Option und die Codepoints mit einer eigenen Seite. Füge unten einen Text ein, um zu sehen, welche davon er enthält.

Von der Voreinstellung entferntBehalten, wenn tragendBraucht eine Option

Nichts wird hochgeladen. Gesäubert wird auf dieser Seite.

Dein Text wird im Browser analysiert. Klick auf »Text säubern«, dann erscheinen die Ergebnisse darunter.

Reinigungsstufe

Standard entfernt nur Zeichen, die du nicht sehen kannst. Maximum schreibt auch sichtbaren Text um (ähnlich aussehende Buchstaben, Anführungszeichen, Striche und Abstände), deshalb ist es eine Entscheidung und keine Voreinstellung.

Die Voreinstellung entfernt bereits jedes Zeichen, das unsichtbar ist und nichts leistet: Zeichen ohne Breite, Byte Order Marks, weiche Trennzeichen, unsichtbare Mathe-Operatoren, Bidi-Overrides, frei stehende Tag-Zeichen und Variantenselektoren, Nichtzeichen und weitere Formatsteuerzeichen. Alles hier unten geht darüber hinaus: Es verändert entweder sichtbaren Text, oder es entfernt Zeichen, die eine Aufgabe haben. Deshalb entscheidest du.

Leerraum & Layout

Geschützte, schmale und ideografische Leerzeichen werden zu einem normalen Leerzeichen. Aus, weil ein geschütztes Leerzeichen oft Absicht ist.
CRLF, CR, NEL sowie die Zeilen- und Absatztrenner von Unicode werden zu einem normalen Zeilenumbruch.
Entfernt den Balken, den ein Terminal vor jeder zitierten Zeile mitkopiert. Aus, weil Ordnerbäume denselben Balken nutzen.
Leerzeichen, die am Zeilenende parken, können eine versteckte Nachricht kodieren (die SNOW-Technik).
Doppelte Leerzeichen zwischen Wörtern können Binärdaten tragen. Aus, weil es Layouts mit fester Breite zerlegt.

Buchstaben & Satzzeichen

Das kyrillische а in »аpple« wird zum lateinischen a. Wirkt nur innerhalb von Wörtern, die Schriftsysteme mischen, gewöhnlicher russischer oder griechischer Text bleibt also unangetastet. Aus, weil es sichtbare Buchstaben verändert.
Geviert- und Halbgeviertstrich, typografische Anführungszeichen, Auslassungspunkte und Minuszeichen werden zu ASCII. Gilt oft als »KI-Verräter«, ist aber auch einfach gute Typografie.
Zusammengesetzte oder zerlegte Akzente (é als ein Zeichen oder als zwei) können Bits kodieren. NFC legt sich auf eine Form fest.
Faltet zusätzlich Vollbreiten-, Hochgestellt- und Ligaturformen. Verändert mehr, als du vermutlich erwartest, und ersetzt NFC.

Steuerzeichen

Bidi-Overrides entfernen wir immer. Marken entfernen wir standardmäßig nur, wenn sie allein in Text von links nach rechts stehen. Diese Option entfernt sie auch dort, wo sie direkt neben Hebräisch oder Arabisch echte Layout-Arbeit leisten.
C0- und C1-Steuerzeichen außer Tabulator und Zeilenumbruch.
Zerlegt Icon-Schriften und manche Markenglyphen; genau dort leben diese Zeichen normalerweise.

Aggressiv

Entfernt jeden Verbinder ohne Breite und jeden Variantenselektor, auch die, die 👨‍👩‍👧 zusammenhalten, und die, die Persisch, Hindi und Flaggensequenzen brauchen. Nimm das nur, wenn du blanke Buchstaben willst und sonst nichts.

ZWSPTAG U+E0053

Klick auf Text säubern, dann zeigen wir dir genau, was sich da versteckt hat: erst in klaren Worten, mit den Codepoints darunter, falls du sie willst.

Die Tabellen unten sagen, worauf die Engine reagiert. Wo du sie laufen lässt, ist eine eigene Frage: Steckt der Text in einer Datei, öffnet der Dokumentbericht eine .docx, .odt oder .html in deinem Browser und listet ausgeblendete Textabschnitte, nachverfolgte Änderungen und Autorendaten neben den Zeichen auf. Willst du ihn gleich irgendwo einfügen, säubert die Chrome-Erweiterung ihn direkt in dem Feld, in dem du tippst.

Nichts davon betrifft, wie sich der Text liest. Dafür gibt es den Stilbericht: Er misst die Schwankung der Satzlängen, Standardüberleitungen, Weichmacher und die Dichte der Gedankenstriche und gibt dir die Zahlen, ohne Punktzahl, ohne Wahrscheinlichkeit und ohne ein Urteil darüber, wer den Text geschrieben hat.

Nach Kategorie

Die Kategorien werden in dieser Reihenfolge geprüft, und der erste Treffer gewinnt. Deshalb wird ein Leerzeichen ohne Breite als Zeichen ohne Breite gemeldet und nicht als allgemeines Formatsteuerzeichen.

Ohne Breite und unsichtbar

Zuständige Option Voreinstellung (immer an)

Zeichen ohne Glyphe und ohne Breite, die in Fließtext überall Schmuggelware sind: Leerzeichen ohne Breite, Wortverbinder, weiches Trennzeichen, Byte Order Mark, die vier unsichtbaren Mathe-Operatoren, veraltete Formatsteuerzeichen, die Marken für Interlinearanmerkungen, die Steuerzeichen der Notenschrift und Unicodes dauerhaft reservierte Nichtzeichen.

Richtungsmarken

Zuständige Option Richtungsmarken --bidi

Hinweise auf die Laufrichtung: die Marken für links-nach-rechts und rechts-nach-links, die arabische Buchstabenmarke und die vier Isolate. Neben Text von rechts nach links lösen sie echte Mehrdeutigkeit auf und bleiben; in einem deutschen Absatz sind sie unsichtbare Füllung und ein veröffentlichter Steganografie-Träger, und sie fliegen raus.

CodepointNameVoreinstellung
U+200ELEFT-TO-RIGHT MARKWenn frei stehend
U+200FRIGHT-TO-LEFT MARKWenn frei stehend
U+061CARABIC LETTER MARKWenn frei stehend
U+2066-U+2069BIDIRECTIONAL ISOLATESWenn frei stehend

Verbinder, Selektoren und Füllzeichen

Zuständige Option Aggressiv -a

Unsichtbare Zeichen, die sich an das Zeichen davor oder danach binden: Verbinder und Trenner ohne Breite, Variantenselektoren, Tag-Zeichen sowie die schriftspezifischen Füllzeichen des Mongolischen, des Khmer und des Hangul. Behalten, wenn ihre Nachbarn sie tragend machen, entfernt, wenn sie frei stehen.

CodepointNameVoreinstellung
U+200DZERO WIDTH JOINERWenn frei stehend
U+200CZERO WIDTH NON-JOINERWenn frei stehend
U+FE00-U+FE0FVARIATION SELECTORSWenn frei stehend
U+E0000-U+E007FTAG CHARACTERSWenn frei stehend
U+180B-U+180DMONGOLIAN FREE VARIATION SELECTORSWenn frei stehend
U+17B4-U+17B5KHMER INHERENT VOWELSWenn frei stehend
U+115F-U+1160HANGUL JAMO FILLERSWenn frei stehend

Jedes andere Formatsteuerzeichen

Zuständige Option Voreinstellung (immer an)

Die Auffangregel. Jedes verbleibende Zeichen, dessen allgemeine Unicode-Kategorie Cf ist, wird entfernt; so wird auch ein Formatsteuerzeichen aus einer künftigen Unicode-Version ohne Codeänderung erwischt. Die orthografischen Ausnahmen (die arabischen Zahlzeichen, das syrische Abkürzungszeichen, das Kaithi-Zahlzeichen) greifen vorher und bleiben unangetastet.

Wird über eine Unicode-Eigenschaft erkannt statt über eine Liste; es gibt also keine feste Menge an Codepoints zum Aufzählen.

Zeichen aus dem Privatbereich

Zuständige Option Zeichen aus dem Privatbereich --pua

Codepoints, die Unicode nie vergeben wird und deren Bedeutung eine private Absprache zwischen einer Schriftart und einer Anwendung ist. Hier leben Icon-Schriften, und genau deshalb muss ihr Entfernen eigens eingeschaltet werden: In Oberflächentexten sind sie der Inhalt.

CodepointNameVoreinstellung
U+E000-U+F8FFPRIVATE USE AREANein

Exotische Leerzeichen

Zuständige Option Leerzeichen -s

Leerzeichen, die nicht U+0020 sind: das geschützte, das schmale und das mittlere, das ideografische, das Ogham-Leerzeichen und die elf typografischen Leerzeichen mit fester Breite. Sie werden durch ein gewöhnliches Leerzeichen ersetzt statt gelöscht, weil sie Wörter trennen.

CodepointNameVoreinstellung
U+00A0NO-BREAK SPACENein
U+202FNARROW NO-BREAK SPACENein
U+205FMEDIUM MATHEMATICAL SPACENein
U+3000IDEOGRAPHIC SPACENein
U+1680OGHAM SPACE MARKNein
U+2000-U+200AGENERAL PUNCTUATION SPACESNein

Zeilentrenner

Zuständige Option Zeilenenden -n

Die Zeilen- und Absatztrenner von Unicode und das aus EBCDIC stammende NEL. Sie werden zu einem einfachen Zeilenvorschub gefaltet statt gelöscht; sie zu löschen würde zwei Zeilen zusammenziehen.

CodepointNameVoreinstellung
U+2028LINE SEPARATORNein
U+2029PARAGRAPH SEPARATORNein
U+0085NEXT LINENein

Steuerzeichen

Zuständige Option Steuerzeichen --controls

Die C0- und C1-Steuercodes, ohne Tabulator, Zeilenvorschub und Wagenrücklauf. Wenn sie in Text auftauchen, steckt meist ein Dekodierunfall oder eine gezielte Sondierung dahinter.

CodepointNameVoreinstellung
U+0000-U+001FC0 CONTROL CHARACTERSNein
U+0080-U+009FC1 CONTROL CHARACTERSNein

Typografische Satzzeichen

Zuständige Option Satzzeichen --punct

Typografische Anführungszeichen, Geviert- und Halbgeviertstrich, Auslassungspunkte, Minuszeichen und die Primzeichen. Hier ist nichts versteckt, das sind sichtbare Zeichen, aber es sind andere Codepoints als ihre ASCII-Formen, und die Wahl zwischen gerade und typografisch ist ein veröffentlichter Kanal mit einem Bit pro Apostroph.

CodepointNameVoreinstellung
U+2013EN DASHNein
U+2014EM DASHNein
U+2019RIGHT SINGLE QUOTATION MARKNein
U+2026HORIZONTAL ELLIPSISNein

Zitatbalken aus dem Terminal

Zuständige Option Zitatbalken --gutters

Der Balken, den ein Terminal links neben ein Zitat zeichnet und der beim Kopieren als Text am Anfang jeder Zeile mitkommt. Ein Balken zählt nur, wenn er seine Zeile eröffnet und dasselbe Zeichen später in der Zeile nicht noch einmal vorkommt, deshalb bleibt eine mit Rahmenzeichen gezeichnete Tabelle unberührt. Er fällt samt dem einen Leerzeichen danach weg. Nur auf Wunsch, weil ein im Terminal ausgegebener Ordnerbaum seine Zeilen mit demselben Balken beginnt.

CodepointNameVoreinstellung
U+2502│ BOX DRAWINGS LIGHT VERTICALNein
U+2503┃ BOX DRAWINGS HEAVY VERTICALNein
U+258C▌ LEFT HALF BLOCKNein
U+258D▍ LEFT THREE EIGHTHS BLOCKNein
U+258E▎ LEFT ONE QUARTER BLOCKNein
U+258F▏ LEFT ONE EIGHTH BLOCKNein

Ähnlich aussehende Buchstaben

Zuständige Option Ähnlich aussehende Buchstaben --confusables

Kyrillische, griechische, armenische, Cherokee-, Vollbreiten- und mathematische Buchstaben, die genauso gezeichnet werden wie lateinische. Die Zuordnung hat 1.513 Einträge, erzeugt aus Unicodes eigenen Confusables-Daten, und einer zählt nur innerhalb eines Wortes, das Schriftsysteme mischt: einer Folge von Buchstaben, die auch einen ASCII-Buchstaben oder eine Ziffer enthält, wie »аpple«. Ein rein kyrillisches oder griechisches Wort wird nie gemeldet und nie verändert. Trotzdem muss man sie einschalten, denn sie verändert Buchstaben, die du sehen kannst.

CodepointNameVoreinstellung
U+0430CYRILLIC SMALL LETTER ANein
U+043ECYRILLIC SMALL LETTER ONein
U+0435CYRILLIC SMALL LETTER IENein
U+0441CYRILLIC SMALL LETTER ESNein

Die Optionen

Die Voreinstellung braucht keine Option und ist immer an. Alles andere ist aus, bis du es einschaltest, und jede einzelne dieser Optionen verändert Text, den du sehen kannst, und genau deshalb ist sie aus.

OptionCLI-FlagWas sie tutWarum sie nicht voreingestellt ist
Voreinstellung(immer an)Zeichen ohne Breite, Byte Order Mark, weiche Trennzeichen, unsichtbare Mathe-Operatoren, Bidi-Overrides, frei stehende Tag-Zeichen, frei stehende Variantenselektoren, Nichtzeichen, jedes verbleibende Cf-Formatsteuerzeichen und frei stehende Klebezeichen.Immer an. Nichts davon ist sichtbar oder tragend.
Aggressiv-aEntfernt Klebezeichen auch dort, wo sie tragend sind.Zerlegt Familien-Emoji, persische und indische Rechtschreibung, Regionalflaggen und CJK-Glyphenvarianten.
Leerzeichen-sErsetzt geschützte und exotische Leerzeichen durch ein gewöhnliches Leerzeichen.Ein geschütztes Leerzeichen tut meistens genau seine Arbeit: französische Interpunktion, »10 km«, CJK-Satz.
Zeilenenden-nFaltet CRLF, CR, NEL, U+2028 und U+2029 zu einem einfachen Zeilenvorschub.Zeilenenden zu ändern ändert die Datei, und manche Pipelines hängen davon ab.
Richtungsmarken--bidiEntfernt Richtungsmarken und Isolate auch neben Text von rechts nach links.Zerlegt das Layout von gemischtem Hebräisch, Arabisch und Persisch.
Steuerzeichen--controlsEntfernt C0- und C1-Steuerzeichen, behält Tabulator und Zeilenumbrüche.In gewöhnlichem Text selten; ihr Auftauchen deutet meist auf ein Kodierungsproblem hin, das man besser an der Quelle behebt.
Zeichen aus dem Privatbereich--puaEntfernt Codepoints aus den privaten Nutzungsbereichen.Dort leben die Glyphen von Icon-Schriften; sie zu entfernen leert deine Beschriftungen.
Satzzeichen--punctWandelt Geviert- und Halbgeviertstrich, typografische Anführungszeichen, Auslassungspunkte und Minuszeichen in ASCII um.Das ist Typografie, kein Versteck. Sie umzuwandeln macht Prosa schlechter, nicht menschlicher.
Ähnlich aussehende Buchstaben--confusablesBildet 1.513 ähnlich aussehende Codepoints auf ihre lateinischen Zwillinge ab, nur innerhalb von Wörtern, die Schriftsysteme mischen.Sie verändert Buchstaben, die du sehen kannst. Rein kyrillischer, griechischer oder türkischer Text bleibt unangetastet, aber ein Wort, das Schriftsysteme mischt, wird verändert, und deshalb muss man danach fragen.
Zitatbalken--guttersEntfernt den Zitatbalken, den ein Terminal am Anfang jeder Zeile mitkopiert, samt dem Leerzeichen danach.Ein Ordnerbaum oder ein in Text gezeichneter Kasten kann seine Zeilen mit demselben Balken beginnen.

Optionen für den ganzen Text

Vier weitere Optionen schreiben Muster um statt einzelner Zeichen und haben deshalb keine eigene Kategorie.

Normalisieren (NFC)

Setzt einen Buchstaben und seinen Akzent zu einem Codepoint zusammen.

Sie ändert Bytes, die bereits korrekt sind, und knackt die Steganografie über Normalisierungsformen nur dann, wenn du darum bittest.

--nfc

Normalisieren (NFKC)

NFC plus gestylte mathematische Buchstaben, Ligaturen und Vollbreitenformen, gefaltet zu einfachen Entsprechungen.

Verlustbehaftet: 𝐟𝐞𝐭𝐭 wird zu fett, und die Auszeichnung ist endgültig weg.

--nfkc

Leerraum am Zeilenende

Entfernt Leerzeichen und Tabulatoren am Ende jeder Zeile.

Zwei Leerzeichen am Zeilenende sind in Markdown ein harter Zeilenumbruch.

--trailing

Leerzeichen zusammenfassen

Fasst mehrere Leerzeichen innerhalb einer Zeile zu einem zusammen, behält aber die Einrückung.

Manche Formate (ausgerichtete Tabellen, ASCII-Art, Code) hängen genau an diesen Ketten.

--collapse

Jedes Zeichen mit eigener Seite

Jedes davon hat seine eigene Seite: was es ist, woher es kommt, wann es berechtigt ist und die ehrliche Antwort auf die Frage, ob es ein KI-Wasserzeichen ist.

Zum Zeichenindex

Fragen

Wie viele Zeichen erkennt es?

Die Tabellen benennen mehrere hundert Codepoints ganz genau, und zwei Auffangregeln decken über Unicode-Eigenschaften jedes verbleibende Formatsteuerzeichen und jeden Codepoint aus dem Privatbereich ab; ein Zeichen aus einer künftigen Unicode-Version wird also ohne Codeänderung erkannt. Dazu kommt die Zuordnungstabelle für ähnlich aussehende Buchstaben mit 1.513 Codepoints.

Kann man die Voreinstellung bedenkenlos auf alles loslassen?

Genau dafür ist sie gebaut: Die Voreinstellung entfernt nur Zeichen, die unsichtbar sind UND in ihrem Kontext keine Aufgabe haben. Jedes sichtbare Zeichen bleibt in Ruhe, auch geschützte Leerzeichen, typografische Anführungszeichen und Gedankenstriche. Wenn du daran etwas geändert haben willst, musst du danach fragen.

Was, wenn mein Zeichen hier nicht aufgeführt ist?

Füg den Text in das Werkzeug ein und lass ihn dir zeigen. Alles, was die Engine einordnet, wird mit Position, Codepoint, Unicode-Name und Kategorie gemeldet, ob es hier eine eigene Seite hat oder nicht.

Anonyme Nutzungsstatistik?

Ghostchars verarbeitet deinen Text im Browser und lädt ihn nie hoch. Wir würden gern Seitenaufrufe zählen, und zwar über einen selbst gehosteten, cookie-armen Analyse-Endpunkt, der niemals Inhalte erfasst.