Zeichensalat reparieren
Wenn aus é ein é und aus einem Apostroph ’ wird, sind die Buchstaben meist nicht verloren. Etwas hat sie mit der falschen Zeichentabelle gelesen. Fügen Sie den Text ein, und wir lesen ihn noch einmal richtig.
Reparierter Text
repariert beste Vermutung, bitte prüfen verloren, bitte neu eingeben · Zeigen Sie auf ein markiertes Wort oder tippen Sie darauf, um die ursprünglichen Zeichen zu sehen.
Die Reparatur läuft in Ihrem Browser. Ihr Text wird nirgendwohin gesendet.
Ein Buchstabe, zwei Arten, ihn zu lesen
In einer Datei gibt es keine Buchstaben. Es gibt Zahlen, die Bytes heißen, und eine Kodierung ist die Tabelle, die sagt, welche Zahl für welches Zeichen steht. Fast alles, was heute geschrieben wird, verwendet UTF-8, wo einfache Buchstaben ein Byte belegen, Buchstaben mit Akzent oder Umlaut zwei und typografische Zeichen wie typografische Anführungszeichen oder das Eurozeichen drei.
Windows-1252 ist eine ältere Tabelle, in der jedes Zeichen genau ein Byte ist. Geben Sie UTF-8-Text an ein Programm, das ihn mit dieser älteren Tabelle liest, und jedes Byte erscheint als eigenes Zeichen. Die zwei Bytes von é (C3 A9) tauchen als à und © auf. Der Schaden hat einen aus dem Japanischen entlehnten Namen, Mojibake, und Sie sind ihm wahrscheinlich schon in einer dieser Formen begegnet.
| Geschrieben | Angezeigt | Wo man es antrifft |
|---|---|---|
| é è | é è | café, crème |
| ü ö ß | ü ö ß | Zürich, Köln, Straße |
| ñ | ñ | señor, España |
| ã ç | ã ç | São Paulo, ação |
| ø å | ø Ã¥ | København, Århus |
| ’ “ – | ’ “ – | geht’s, wörtliche Rede, Gedankenstriche |
| € | € | Preise |
Wie die Reparatur funktioniert
Das Tool geht Ihren Text durch und hält bei jeder Folge von Zeichen aus der oberen Hälfte von Windows-1252 an. Es verwandelt jedes davon zurück in das Byte, aus dem es entstanden ist, und prüft dann, ob diese Bytes ein gültiges UTF-8-Zeichen bilden.
Gültig heißt: ein Startbyte zwischen C2 und F4, gefolgt von der richtigen Zahl an Folgebytes (80 bis BF), keine überlangen Formen, keine Surrogat-Werte. Trifft das zu, wird die Folge durch das Zeichen ersetzt, das sie kodiert. Trifft es nicht zu, ändert sich nichts. Dieser Test schützt auch korrekt geschriebenen Text. Das é in einem gesunden „café“ ist in Windows-1252 ein einzelnes Byte, und ein einzelnes Byte kann nie als UTF-8-Paar durchgehen.
Text, der beschädigt, gespeichert und erneut beschädigt wurde, zeigt längere Ketten wie é. Das Tool wiederholt den Durchgang bis zu fünfmal und schält jedes Mal eine Schicht ab, bis sich der Text nicht mehr ändert.
Die drei Markierungen lesen
- Repariert
- Die Bytes ließen sich sauber dekodieren, diese Änderungen sind also sicher. Zeigen Sie auf das Wort, um zu sehen, was es ersetzt hat.
- Beste Vermutung, prüfen
- Ein Byte fehlte, und das Tool hat die Lücke gefüllt. Es gibt zwei Fälle.
Ãgefolgt von einem Leerzeichen wird alsàgelesen, weil das zweite Byte dieses Buchstabens (A0) auch das geschützte Leerzeichen ist und oft zu einem gewöhnlichen eingeebnet wird. Ein einzelnesâ€wird als schließendes typografisches Anführungszeichen gelesen, weil sein drittes Byte (9D) in Windows-1252 kein Zeichen hat und gern verschwindet. Diese Vermutungen stellt das Tool nur an, wenn der Text andere deutliche Anzeichen von Mojibake zeigt. - Verloren, neu eintippen
- Ein
�oder ein Fragezeichen zwischen zwei Buchstaben wie inr?sum?. Ein Programm hat das Zeichen vor dem Speichern ersetzt, und es ist kein Byte mehr zum Dekodieren übrig. Das Tool markiert die Stelle, und Sie setzen den Buchstaben ein.
Ein verirrtes  vor einem Leerzeichen ist die erste Hälfte eines geschützten Leerzeichens. Das Tool entfernt es und zeigt das verbleibende Leerzeichen mit einer zarten Markierung, damit Sie es von einem normalen unterscheiden können.
Das Problem an der Quelle stoppen
Eingefügten Text zu reparieren behandelt nur das Symptom. Irgendwo weiter vorne schreibt ein Programm UTF-8, und ein anderes weiß nichts davon. Das sind die üblichen Stellen.
- Eine CSV-Datei in Excel geöffnet
- Doppelklicken Sie auf eine CSV-Datei, geht Excel von der alten Windows-Tabelle aus. Gehen Sie stattdessen über Daten, Aus Text/CSV, und stellen Sie den Dateiursprung auf
65001: Unicode (UTF-8). Wählen Sie beim Exportieren „CSV UTF-8 (durch Trennzeichen getrennt)“. - Eine MySQL- oder MariaDB-Datenbank
- Spalten, die als
latin1deklariert sind und UTF-8-Bytes enthalten, oder ein Dump, der mit dem falschen--default-character-setimportiert wurde. Tabellen und Verbindung sollten beideutf8mb4verwenden. - Eine Webseite
- Setzen Sie
<meta charset="utf-8">an den Anfang des<head>und lassen Sie den ServerContent-Type: text/html; charset=utf-8senden. - Eine E-Mail oder eine Textdatei
- Bei E-Mails der Header
Content-Type: text/plain; charset=UTF-8. Bei Dateien speichern Sie über das Menü „Mit Kodierung speichern“ des Editors als UTF-8.
Eine ganze Datenbank umzuwandeln ist eine andere Aufgabe, als einen Absatz zu reparieren. Machen Sie ein vollständiges Backup, führen Sie die Umwandlung an einer Kopie durch und vergleichen Sie Zeilen, bevor Sie die Live-Website anfassen. Eine Umwandlung, die auf bereits korrekten Text angewendet wird, beschädigt ihn.
Was es nicht retten kann
Das Tool behandelt einen Unfall, der zufällig mit Abstand der häufigste ist: UTF-8, gelesen als Windows-1252 oder Latin-1. Jede Sprache ist abgedeckt, Griechisch und Kyrillisch eingeschlossen, solange genau diese Verwechslung vorlag. Andere Paare liegen außerhalb, etwa Mac Roman (wo é als √© erscheint), Windows-1251 und Shift-JIS. Die Vermutung, die aus à plus Leerzeichen ein à macht, passt zu Italienisch, Portugiesisch und anderen Sprachen, die diesen Buchstaben als eigenes Wort verwenden. In jedem anderen Text prüfen Sie sie nach.
Häufige Fragen
Warum wird é als é angezeigt?
Der Text wurde als UTF-8 gespeichert, wo é zwei Bytes hat, und dann als Windows-1252 geöffnet, wo jedes Byte ein eigenes Zeichen ist. Die zwei Bytes werden als à und © angezeigt. In diesem Stadium geht nichts verloren, deshalb lässt es sich umkehren.
Was bedeutet ’ in meinem Text?
Es ist ein typografischer Apostroph (’). Dieses Zeichen belegt in UTF-8 drei Bytes, und jedes wurde einzeln angezeigt. Derselbe Unfall macht aus öffnenden Anführungszeichen “ und aus Gedankenstrichen –.
Warum steht ein  vor Leerzeichen oder vor £?
Das geschützte Leerzeichen besteht aus den zwei Bytes C2 A0, das Pfundzeichen aus C2 A3. Mit der falschen Tabelle gelesen, wird das erste Byte zu einem sichtbaren Â. Das Tool entfernt es und behält das folgende Zeichen.
Kann es Fragezeichen und schwarze Rauten (�) reparieren?
Nein. Die entstehen, wenn ein Programm ein Zeichen nicht darstellen konnte und es vor dem Speichern ersetzt hat, die ursprünglichen Bytes sind also weg. Das Tool markiert jedes davon, und Sie tippen es neu.
Wie repariere ich kaputte Zeichen auf einer ganzen WordPress-Website?
Prüfen Sie, ob DB_CHARSET in der wp-config.php auf utf8mb4 steht und die Tabellen keine latin1-Kollation verwenden. Sind es nur ein paar Seiten, fügen Sie jeden Text hier ein und setzen die reparierte Fassung zurück. Für die ganze Datenbank lassen Sie die Tabellen zuerst an einer Kopie umwandeln, mit einem Backup zur Hand.
Wird der eingefügte Text an einen Server geschickt?
Nein. Ein Skript in Ihrem Browser übernimmt die Dekodierung, und die Seite stellt keine Anfrage mit Ihrem Text.