Textdatei-Portabilität prüfen
Füge Text ein oder wähle eine einfache Textdatei, um Kodierungs-, Zeilenende- und Leerraumunterschiede zu erkennen, die Git, Diff-Werkzeuge, CI, Windows Editor oder ältere Unix-Tools beeinflussen können.
Die Verarbeitung erfolgt lokal in Ihrem Browser. Ihre Datei wird niemals hochgeladen.
Anleitung Tool
- Füge Text ein oder wähle .txt/.csv/.log bzw. eine einfache Textdatei. Der Browser liest sie lokal; sie wird nicht hochgeladen.
- Starte die Kompatibilitätsprüfung.
- Prüfe markierte Probleme und betroffene Werkzeuge.
- Nutze bei Verfügbarkeit die sichere Sammelkorrektur: Zeilenenden normalisieren, führende BOM entfernen, nachgestellte Leerzeichen kürzen, letzte Zeile abschließen und typografische Leerzeichen ersetzen.
Annahmen
- Analysiert den vom Browser bereits dekodierten JavaScript-Text, nicht die Originalbytes. Die ursprüngliche Kodierung kann deshalb nicht direkt erkannt werden.
- Geprüft werden acht Fälle: gemischte CRLF/LF, CR ohne LF, führende BOM, Unicode-Ersatzzeichen, nachgestellte Leerzeichen, fehlender abschließender Zeilenumbruch, gemischte Tab-/Leerzeicheneinrückung und visuell ähnliche Unicode-Leerzeichen.
- U+FFFD deutet auf einen bereits erfolgten Dekodierungsfehler hin. Originalbytes lassen sich aus dem Text nicht wiederherstellen; dafür wird keine Korrektur angeboten.
Quellen und Referenzdaten
Methodik
Der Text wird zeilenweise unter Erhalt der ursprünglichen CRLF-, LF-, CR- oder fehlenden Terminatoren zerlegt. Acht spezifische Prüfungen folgen. Die Sammelkorrektur umfasst nur eindeutige Änderungen. Ersatzzeichen und gemischte Einrückung werden nicht automatisch geändert, weil die ursprünglichen Bytes bzw. die gewünschte Tabulatorbreite unbekannt sind.
Rechenbeispiel
Datei mit gemischten CRLF- und LF-Zeilenenden
Eingaben: Zeile eins Zeile zwei
Ergebnis: Git und andere zeilenbasierte Werkzeuge können alle Zeilen als geändert anzeigen, obwohl sich nur eine Zeile geändert hat. Eine Normalisierung auf LF wird angeboten.
UTF-8-BOM vor Shebang
Eingaben: #!/bin/sh echo "Hallo"
Ergebnis: Eine BOM vor `#!/bin/sh` hindert viele Unix-Shells daran, die Shebang zu erkennen. Entfernen der führenden BOM wird vorgeschlagen.
Geschütztes Leerzeichen statt normalem Leerzeichen
Eingaben: const total = price + tax;
Ergebnis: U+00A0 sieht aus wie ein gewöhnliches Leerzeichen, ist aber ein anderer Codepunkt und kann exakte Vergleiche oder Parser beeinflussen.
Praktische Hinweise
- Lege in Editor und Git (`core.autocrlf` oder `.gitattributes`) eine einheitliche Zeilenendekonvention fest.
- Bei U+FFFD die Datei aus der Quelle mit korrekter Kodierung neu öffnen/exportieren; verlorene Bytes sind aus dem Text nicht rekonstruierbar.
- Unsichtbare Leerzeichen im Editor anzeigen lassen.
- Einrückungskonvention mit Leerzeichen oder Tabs durchgängig anwenden.
Häufige Fehler
- Annehmen, die Datei sei fehlerfrei, weil der Editor Leerzeichen ausblendet oder Zeilenenden normalisiert.
- Nach Ersatzzeichen den beschädigten Text manuell umschreiben statt die Originalquelle wiederherzustellen.
Häufige Fragen
Warum sind gemischte Zeilenenden Fehler, nachgestellte Leerzeichen aber nur Information?
Gemischte Endungen und CR ohne LF können zeilenbasierte Werkzeuge oder Parser fehlleiten. Nachgestellte Leerzeichen verhindern das Lesen meist nicht, können aber Formatierer oder Linter stören.
Warum wird gemischte Tab-/Leerzeicheneinrückung nicht automatisch repariert?
Dafür wäre die beabsichtigte Tabulatorbreite – etwa 2, 4 oder 8 Spalten – nötig. Das Werkzeug kann sie nicht sicher ableiten.
Kann die ursprüngliche Dateikodierung erkannt werden?
Nein. Der Browser hat Bytes bereits in Text dekodiert. Nur ein mögliches Ergebnis der fehlerhaften Dekodierung wie U+FFFD ist erkennbar.
Zuletzt geprüft:
Begrenzter zeilen- und zeichenorientierter Scanner, kein bytebasierter Kodierungsdetektor. Er kann ursprüngliche Kodierung und bei vorherigem Dekodierungsfehler verlorene Daten nicht rekonstruieren. Andere Unicode-Fälle wie Surrogatpaare, kombinierende Normalisierungsformen und RTL-Markierungen sind nicht abgedeckt.
Dieses Tool liefert eine unverbindliche Schätzung auf Grundlage der oben genannten Annahmen.
Design- und Tool-Einstellungen sowie gespeicherte und zuletzt verwendete Listen werden nur in diesem Browser gespeichert.