Konvertieren Sie eine Textdatei in UTF-8
Wählen Sie die automatische Quellenerkennung, wenn die Datei über eine Unicode-Bytereihenfolgemarkierung verfügt, oder nennen Sie sie UTF-16LE oder UTF-16BE, wenn Sie wissen, dass sie keine Markierung hat. Schreiben Sie das Ergebnis als UTF-8 und lassen Sie die Stückliste für eine moderne Nur-Text-Datei weg, es sei denn, die empfangende Anwendung erfordert ausdrücklich eine solche.
Eine reine Textdatei mit bis zu 25 MB. Binärformate wie Word-Dokumente sind keine Textkodierungen und werden abgelehnt.
Die Ergebnisse werden ohne Gewähr für ihre Richtigkeit bereitgestellt. Die Methode und ihre Quellen stehen unten, damit Sie den Rechenweg prüfen können.
Erkennt automatisch UTF-8-, UTF-16LE- und UTF-16BE-Bytereihenfolgemarkierungen; Eine nicht markierte Datei ist standardmäßig UTF-8.
Ungültige Bytesequenzen werden abgelehnt, anstatt Zeichen stillschweigend zu ersetzen.
Die Konvertierung des Zeilenendes ist optional und unabhängig von der Zeichenkodierung.
So funktioniert es
So wird es gemacht
- Überprüfen Sie die ersten drei Bytes auf EF BB BF (UTF-8), FF FE (UTF-16LE) oder FE FF (UTF-16BE). Im automatischen Modus wählt der Markierer den Decoder; ohne eine benötigen Sie UTF-8, anstatt eine alte Codepage zu erraten.
- Wenn die Quellkodierung manuell ausgewählt wird, ist die Zustimmung aller vorhandenen Markierungen erforderlich. Entfernen Sie die vereinbarte Markierung und dekodieren Sie dann im Fatal-Modus, sodass eine illegale Bytesequenz die Konvertierung stoppt, anstatt zu einem stillen Ersatzzeichen zu werden.
- Behalten Sie standardmäßig jede CR-, LF- und CRLF-Sequenz bei. Nur wenn diese Option ausgewählt ist, werden alle drei Formen als separater Vorgang von der Zeichenkodierung auf LF oder CRLF normalisiert.
- Zählen Sie Unicode-Codepunkte und behandeln Sie ein gültiges UTF-16-Ersatzzeichenpaar als ein zusätzliches Zeichen. Kodieren Sie die resultierende Zeichenfolge als UTF-8-Bytes oder als Zwei-Byte-UTF-16-Codeeinheiten in der ausgewählten Bytereihenfolge.
- Fügen Sie den ausgewählten Zielmarker – EF BB BF, FF FE oder FE FF – nur hinzu, wenn Sie dazu aufgefordert werden, und bieten Sie dann eine separate TXT-Datei an. Die Quelldatei wird nie geändert.
Wovon es ausgeht
- Auto ist absichtlich auf die drei Unicode-Bytereihenfolgemarkierungen beschränkt. Eine nicht markierte Datei verwendet standardmäßig das strikte UTF-8; Windows-1252-, ISO-8859-Varianten und andere ältere Codepages können nicht zuverlässig anhand von Bytes allein unterschieden werden.
- Eine Bytereihenfolgemarkierung am Anfang stellt Metadaten dar und wird vor dem ersten Textzeichen verbraucht. Ein U+FEFF weiter unten in der Datei ist Inhalt und bleibt Inhalt.
- UTF-8 hat keine Frage zur Bytereihenfolge; seine Stückliste ist nur eine Signatur. UTF-16LE und UTF-16BE serialisieren dieselben 16-Bit-Codeeinheiten in entgegengesetzter Bytereihenfolge.
- Ungültige UTF-Sequenzen werden abgelehnt statt repariert. Die Eingabeobergrenze beträgt 25 MB und die Codepunkt- und UTF-16-Schleifen ergeben alle 250.000 Codeeinheiten für Fortschritt und Abbruch.
Fragen
Kann das Tool Windows-1252 oder eine andere ältere Codepage erraten?
Nein. Viele ältere Kodierungen verfügen über keine zuverlässige Signatur, sodass durch Raten der Text stillschweigend geändert werden kann. Dieser Konverter verarbeitet die drei expliziten Unicode-Codierungen und fordert Sie auf, zunächst einen bekannten Legacy-Decoder zu verwenden.
Sollte eine UTF-8-Datei eine Stückliste haben?
Normalerweise nicht für moderne Web- und Befehlszeilen-Workflows. Einige ältere Windows-Software verwendet es als Hinweis, sodass die Auswahl explizit bleibt und nicht automatisch hinzugefügt wird.
Quellen
Die vollständige Methode, das Rechenbeispiel und alle Annahmen hinter diesem Ergebnis stehen auf Textkodierungskonverter.