Skip to content

Kodierungs-Konverter & Mojibake-Reparatur

Kaputten Text einfügen und den Originaltext zurückbekommen. Jede plausible Kodierungskette — UTF-8, GBK, Big5, Shift_JIS, EUC-KR, Windows-1252 — wird geprüft, bewertet und mit Kette angezeigt. Kostenlos, privat, im Browser.

Kein Tracking Läuft im Browser Kostenlos
Alles wird lokal in Ihrem Browser dekodiert — der eingefügte Text verlässt dieses Gerät nie.

Kaputten Text wiederherstellen

Fügen Sie den kaputten Text ein. Jede plausible Kodierungskette wird probiert und die Ergebnisse werden sortiert — Sie müssen nicht wissen, welche Kodierung ihn zerlegt hat.

Zum Ausprobieren

Wahrscheinlichste Originale

4 Kandidaten
  1. 测试

    Exakt

    UTF-8 → GBK

  2. 娴嬭瘯

    Exakt

    Windows-1252 / Latin-1 → UTF-8

  3. 测试

    Exakt

    Windows-1252 / Latin-1 → GBK

  4. 测试

    Exakt

    Windows-1251 → GBK

Kodierungen konvertieren und prüfen

Sehen Sie denselben Text auf einen Blick als Bytes in allen gängigen Kodierungen — nützlich, wenn Sie genau wissen müssen, was Ihre Datenbank oder Ihr Protokoll speichert.

Kodierung Bytes Hex
UTF-8 6 E4 B8 AD E6 96 87
GBK 4 D6 D0 CE C4
GB18030 4 D6 D0 CE C4
Big5 4 A4 A4 A4 E5
Shift_JIS 4 92 86 95 B6
EUC-KR 4 F1 E9 D9 FE

Jede auf dieser Seite gezeigte Kodierungskette stammt aus derselben Engine, die die Seite ausführt, und die Round-Trip-Prüfung hinter dem Badge „Exakt“ wird in der Unit-Test-Suite gegen bekannte Bytefolgen abgesichert. — Go Tools Team · Sep 8, 2026

Erstellt und geprüft vom Engineering-Team von Go Tools.

Kurze Antworten

Welche Kodierung macht aus 测试 das Wirrwarr 娴嬭瘯?

UTF-8 → GBK UTF-8-Bytes, als GBK gelesen. Die sechs UTF-8-Bytes (E6 B5 8B E8 AF 95) werden zu drei GBK-Zeichen umgruppiert.

Was macht aus 测试 die Folge 测试?

UTF-8 → Windows-1252 Dieselben UTF-8-Bytes, als Windows-1252 gelesen. Weil diese Kodierung ein Byte pro Zeichen verwendet, wird jedes der sechs Bytes zu einem eigenen Zeichen.

Lässt sich Text wiederherstellen, der � enthält?

Nicht wiederherstellbar Nein. Diese Bytes wurden beim Dekodieren verworfen. Holen Sie aus dem umgebenden Text, was geht, und für den Rest zurück an die Quelle.

Wie viele Bytes hat ein chinesisches Zeichen?

3 statt 2 Bytes Drei in UTF-8, zwei in GBK und Big5. Dieser Unterschied ist eine häufige Ursache für Abschneidefehler, wenn eine Spalte in Bytes statt in Zeichen dimensioniert ist.

Was ist Mojibake?

Mojibake entsteht, wenn Text mit einer Zeichenkodierung geschrieben und mit einer anderen gelesen wird. Die Bytes sind unversehrt; falsch ist allein die Interpretation. Genau auf diesem Unterschied beruht die Wiederherstellung: Wer herausfindet, welche Kodierung die Bytes geschrieben und welche sie falsch gelesen hat, kann den Fehler rückwärts ausführen und den Originaltext zurückholen.

Das Wort ist japanisch — 文字化け, ungefähr „Zeichenverwandlung“ — und hat sich als Fachbegriff durchgesetzt, weil das Problem in der japanischen Datenverarbeitung lange vor Unicode allgegenwärtig war. Chinesischer, japanischer und koreanischer Text ist weit häufiger betroffen als lateinischer, und das aus einem strukturellen Grund: Diese Sprachen brauchen Mehrbyte-Kodierungen, und Mehrbyte-Kodierungen sind sich uneinig darüber, wie Bytes zu gruppieren sind. Eine Zeichenkette in lateinischer Schrift ist meist reines ASCII, und über ASCII sind sich alle Kodierungen einig.

Die Wiederherstellung scheitert in genau einer Situation. Trifft ein Decoder auf Bytes, die in seiner Kodierung keine Bedeutung haben, behält er sie nicht — er ersetzt sie durch U+FFFD und wirft sie weg. Diese Zeichen sind dauerhaft verloren; alles andere ist umkehrbar.

// The mistake, in three lines of JavaScript
const bytes = new TextEncoder().encode('测试');   // UTF-8: E6 B5 8B E8 AF 95
new TextDecoder('gbk').decode(bytes);            // '娴嬭瘯'  ← mojibake
new TextDecoder('windows-1252').decode(bytes);   // '测试'  ← same bytes, other mistake

Was dieses Werkzeug leistet

Die Kodierung muss nicht bekannt sein

Text einfügen genügt, die Ketten zählt das Werkzeug für Sie durch. Jede Kombination aus Schreib- und Lesekodierung über UTF-8, GBK, GB18030, Big5, Shift_JIS, EUC-KR, Windows-1252 und Windows-1251 wird probiert.

Exakte Treffer sind geprüft, nicht geraten

Ein Kandidat gilt nur dann als exakt, wenn der Rücklauf durch dieselbe Kette Ihre Eingabe Zeichen für Zeichen reproduziert. Das ist eine deterministische Prüfung — eine sortierte Schätzung würde Ihnen nicht sagen, welchen Ergebnissen Sie trauen können.

Die Kette wird gezeigt, nicht versteckt

Jeder Kandidat benennt die Kodierung, die die Bytes geschrieben hat, und die, die sie falsch gelesen hat. Das brauchen Sie, um die Quelle zu reparieren, statt nächste Woche dieselben Zeichenketten erneut zu flicken.

Ehrlich bei nicht wiederherstellbarem Text

Enthält die Eingabe bereits Ersatzzeichen, sagt das Werkzeug das klar und markiert jeden Kandidaten als teilweise. Beim Dekodieren zerstörte Information kommt nicht zurück, und etwas anderes zu behaupten kostet Sie einen Nachmittag.

Byte-Ansicht über alle Kodierungen auf einmal

Sehen Sie beliebigen Text als Hex-Bytes über alle unterstützten Kodierungen nebeneinander und dekodieren Sie rohes Hex in die Gegenrichtung. Nützlich für Spaltenbreiten, Paketmitschnitte und BLOB-Inhalte.

Nichts verlässt Ihren Browser

Dekodiert wird mit dem TextDecoder des Browsers. Kein Upload, keine Speicherung, kein Umschreiben der URL — was zählt, weil kaputter Text meist direkt aus der Produktion kommt.

Beispiele im Detail

UTF-8 als GBK gelesen — der Klassiker

娴嬭瘯
测试

Die beiden chinesischen Zeichen lagen korrekt als UTF-8 vor (Bytes E6 B5 8B E8 AF 95), dann las ein Programm diese sechs Bytes als GBK. GBK fasst Bytes paarweise zusammen und erzeugte deshalb drei Zeichen statt zwei. Genau das bekommt man, wenn eine UTF-8-Datei in einer alten Windows-Anwendung geöffnet wird oder wenn der Zeichensatz einer Datenbankverbindung auf gbk steht, während die Daten UTF-8 sind.

UTF-8 als Windows-1252 gelesen — die westliche Variante

测试
测试

Dieselben Bytes, ein anderer Fehler. Windows-1252 ist eine Einzelbyte-Kodierung, also wurde jedes der sechs UTF-8-Bytes zu einem eigenen Zeichen. Sprachen in lateinischer Schrift trifft diese Variante ständig: aus café wird café, aus naïve wird naïve. Verräterisch sind paarweise auftretende Ã, Â, â und verirrte Satzzeichen.

Bytes, die schon als Hex vorliegen

B2 E2 CA D4
测试

Manchmal steht man nicht vor kaputtem Text, sondern vor einem Hex-Dump aus einem Paketmitschnitt oder einer BLOB-Spalte. Fügen Sie die Hex-Bytes in den zweiten Abschnitt ein und wählen Sie die Kodierung. B2 E2 CA D4 ist 测试 in GBK — dieselben zwei Zeichen belegen in UTF-8 sechs Bytes (E6 B5 8B E8 AF 95) und lassen sich in Windows-1252 überhaupt nicht darstellen.

Text, der sich nicht mehr retten lässt

鏁版嵁搴�
(nur teilweise)

数据库 wurde als UTF-8 geschrieben und als GBK gelesen, aber das letzte Bytepaar hatte in GBK keine Bedeutung, also ersetzte der Decoder es durch U+FFFD. Dieses Byte ist weg. Das Werkzeug weist darauf hin, statt still zu raten — 数据 am Anfang der Zeichenkette lässt sich noch wiederherstellen, das letzte Zeichen aber nicht, dafür müssen Sie zurück an die Quelldaten.

So benutzen Sie dieses Werkzeug

  1. 1

    Kaputten Text einfügen

    Direkt hineinkopieren — die Kodierung muss vorher nicht bekannt sein. Ein kurzer Ausschnitt genügt; ein Dutzend Zeichen legt die Kette meist schon fest.

  2. 2

    Obersten Kandidaten und sein Badge lesen

    Exakt heißt, die Kette führt im Round-Trip exakt zu Ihrer Eingabe zurück. Teilweise heißt, sie tut es nicht — dann ist das Ergebnis nur ein Hinweis.

  3. 3

    Kodierungskette prüfen

    Jeder Kandidat zeigt, in welcher Kodierung der Text wirklich geschrieben war und welche ihn falsch gelesen hat. Das sagt Ihnen, was stromaufwärts zu reparieren ist, nicht nur, was dastand.

  4. 4

    Bei Bedarf die Bytes ansehen

    Der zweite Abschnitt zeigt beliebigen Text als Bytes in allen gängigen Kodierungen und dekodiert rohes Hex in die andere Richtung. Nützlich für Spaltenbreiten und Protokollrahmen.

Fehler, die es schlimmer machen

Text konvertieren, der nie kaputt war

Wird eine Zeichenkette korrekt angezeigt und trotzdem konvertiert, erzeugen Sie genau das Mojibake, das Sie vermeiden wollten. Prüfen Sie zuerst die Anzeige, und beachten Sie: Eine fehlende Schriftart erscheint als Kästchen (□□□), ein Kodierungsproblem dagegen als falsche Zeichen.

✗ Falsch
iconv -f UTF-8 -t GBK correct.txt > broken.txt
✓ Richtig
# Zuerst die aktuelle Kodierung bestätigen
file -I correct.txt   # charset=utf-8 → nichts zu konvertieren

Einen Zeichensatz deklarieren, den die Daten nicht haben

Den deklarierten Zeichensatz einer MySQL-Spalte zu ändern, kodiert die enthaltenen Bytes nicht neu. Deklariert man latin1-Daten als utf8, liefert der Server Bytes zurück, die kein gültiges UTF-8 sind, und der Treiber ersetzt sie durch U+FFFD — womit sie zerstört sind.

✗ Falsch
ALTER TABLE t MODIFY c VARCHAR(255) CHARACTER SET utf8mb4;
✓ Richtig
-- Über einen Binärtyp gehen, damit die Bytes erhalten statt neu interpretiert werden
ALTER TABLE t MODIFY c VARBINARY(255);
ALTER TABLE t MODIFY c VARCHAR(255) CHARACTER SET utf8mb4;

Einer teilweisen Wiederherstellung vertrauen

Ein als teilweise markierter Kandidat hat den Round-Trip nicht bestanden. Er ist eine Spur, der man nachgehen kann, aber keine Antwort, die man in die Datenbank zurückschreibt. Kommt gar nichts als exakt zurück, hat die Eingabe wahrscheinlich schon Information verloren — dann zurück zu den Quellbytes.

✗ Falsch
// Einfach den ersten Kandidaten nehmen, egal was das Badge sagt
db.update(row.id, candidates[0].text);
✓ Richtig
// Nur zurückschreiben, was den Round-Trip besteht
if (candidates[0].lossless) db.update(row.id, candidates[0].text);

Annehmen, dass Python-2-Gewohnheiten noch gelten

encode auf etwas aufzurufen, das schon Bytes ist, oder decode auf etwas, das schon eine Zeichenkette ist, wirft in Python 3 eine Ausnahme, statt still einen Umweg über ASCII zu nehmen. Dekodieren Sie Bytes einmal, an der Grenze, und behandeln Sie sie danach als Text.

✗ Falsch
text = raw.decode('utf-8').encode('gbk').decode('utf-8')
✓ Richtig
# Einmal an der Grenze dekodieren, mit der Kodierung, die die Datei wirklich verwendet
with open(path, encoding='gbk') as f:
    text = f.read()

Wann Sie das brauchen

Eine Datenbankmigration hat Buchstabensalat erzeugt
Alte MySQL-Tabellen, die als latin1 deklariert sind, tatsächlich aber UTF-8-Bytes enthalten, sind die mit Abstand häufigste Ursache. Fügen Sie eine kaputte Zeile hier ein und bestätigen Sie die echte Kette, bevor Sie das ALTER TABLE schreiben — die Konvertierung in die falsche Richtung macht aus einem behebbaren Problem ein dauerhaftes.
Eine CSV-Datei zeigt in Excel Unsinn
Excel unter Windows nimmt für CSV-Dateien ohne BOM immer noch die Codepage des Systems an, also kommen UTF-8-Exporte als Mojibake an. Bestätigen Sie die Kette hier und exportieren Sie dann erneut mit BOM, oder importieren Sie über den Textassistenten mit explizit gesetzter Kodierung.
Logdateien eines Altsystems
Anwendungen, die gegen GBK oder Shift_JIS gebaut wurden, schreiben ihre Logs in diesen Kodierungen, während moderne Log-Aggregatoren alles als UTF-8 lesen. Fügen Sie eine Zeile ein, um sie wiederherzustellen — und weil nichts hochgeladen wird, geht das auch mit Produktions-Logs.
Dateinamen, die ein ZIP-Archiv zerlegt hat
Das ZIP-Format hat kein Feld für die Kodierung, deshalb tragen Archive von chinesischen oder japanischen Windows-Systemen Dateinamen in GBK oder Shift_JIS, die Unix-Werkzeuge als UTF-8 lesen. Stellen Sie die echten Namen hier wieder her, bevor Sie irgendetwas umbenennen.
Eine Datenbankspalte dimensionieren
Die Byte-Ansicht zeigt denselben Text über alle Kodierungen auf einmal. Ein chinesisches Zeichen belegt in UTF-8 3 Bytes, in GBK aber 2 — genau die Art Unterschied, die aus einem VARCHAR(50) einen Abschneidefehler macht.

Wie Mojibake entsteht

Bytes überleben, Bedeutung nicht
Kodieren bildet Zeichen auf Bytes ab, Dekodieren bildet Bytes zurück. Mojibake ist ein Dekodieren mit der falschen Abbildung. Die Bytes wurden nie beschädigt, und deshalb liefert das rückwärts ausgeführte Fehldekodieren den Originaltext exakt zurück — vorausgesetzt, das Fehldekodieren hat nichts verworfen.
Warum CJK-Text am stärksten leidet
ASCII belegt 0x00–0x7F, und darin sind sich alle gängigen Kodierungen einig, also kommt englischer Text unbeschadet durch. Chinesisch, Japanisch und Koreanisch brauchen Mehrbyte-Sequenzen, und die Kodierungen sind sich über deren Gruppierung uneinig. UTF-8 verwendet drei Bytes pro chinesischem Zeichen, GBK zwei. Füttert man einen GBK-Decoder mit UTF-8-Bytes, verschiebt sich die Gruppierung: Heraus kommt eine andere Anzahl anderer Zeichen.
Die Round-Trip-Prüfung
Für jede Kandidatenkette kodiert das Werkzeug den wiederhergestellten Text erneut mit der ersten Kodierung und dekodiert ihn erneut mit der zweiten. Reproduziert das die Eingabe exakt, erklärt die Kette jedes einzelne Zeichen und der Kandidat gilt als exakt. Kandidaten, die daran scheitern, werden trotzdem angezeigt, denn eine teilweise Wiederherstellung identifiziert den Text oft auch dann, wenn sie ihn nicht reproduzieren kann.
Woher die Kodierungstabellen kommen
Die Tabellen liefert der TextDecoder des Browsers. Die Gegenrichtung ist kniffliger, weil TextEncoder nur UTF-8 beherrscht — deshalb baut das Werkzeug eine Rückabbildung auf, indem es den Byteraum durchläuft und den Decoder nach der Bedeutung jeder Sequenz fragt. Die Abbildung stimmt damit immer mit dem Verhalten Ihres Browsers überein, und es werden keine Nachschlagetabellen an Ihr Gerät ausgeliefert.
Die Ranking-Heuristik und ihre Grenzen
Über die Round-Trip-Prüfung hinaus werden Kandidaten danach bewertet, welcher Anteil des Textes aus häufigen chinesischen Zeichen besteht (jene, deren GBK-Leitbyte in 0xB0–0xF7 liegt), abzüglich Abschlägen für Ersatzzeichen, Halbbreiten-Katakana und Steuerzeichen. Halbbreiten-Katakana ist ein starkes Shift_JIS-Signal, weil normaler japanischer Text sie kaum verwendet. Das ist eine Heuristik: Sie entscheidet Gleichstände, sie stellt keine Wahrheit fest.

So verhindern Sie eine Wiederholung

Die Quelle reparieren, nicht nur die Zeichenkette
Die unter jedem Kandidaten angezeigte Kodierungskette sagt Ihnen, welche Komponente falsch konfiguriert ist. Repariert man nur den Text, ohne Verbindungs-Zeichensatz, Datei-Leser oder Exporteinstellung zu ändern, macht man dasselbe morgen mit frischen Daten noch einmal.
Vor der Konvertierung einer ganzen Datei die Richtung bestätigen
Schicken Sie zuerst eine repräsentative Zeile durch diese Seite. Eine Konvertierung in die falsche Richtung kann Ersatzzeichen erzeugen, und anders als der ursprüngliche Fehler ist dieser Schritt nicht umkehrbar.
Die Kodierung überall explizit setzen
Zeichensatz der Datenbankverbindung, HTTP-Content-Type, Aufrufe zum Öffnen von Dateien, CSV-Exporte. Jede Stelle, die auf „die Kodierung des Systems“ zurückfällt, ist eine Stelle, an der derselbe Fehler zurückkommt, sobald der Code auf einer anderen Maschine läuft.
In MySQL utf8mb4 statt utf8 verwenden
MySQLs utf8 speichert höchstens drei Bytes pro Zeichen, deshalb werden Emoji und einige seltenere chinesische Zeichen stillschweigend abgeschnitten. utf8mb4 ist echtes UTF-8. Das ist ein anderer Fehler als Mojibake, und dieses Werkzeug hilft dabei nicht — diese Bytes sind wirklich weg.
Die Originalbytes behalten, bis die Reparatur geprüft ist
Legen Sie eine Kopie an, bevor Sie irgendetwas konvertieren. Solange die Originalbytes existieren, ist jedes Fehldekodieren umkehrbar — sind sie erst einmal mit Ersatzzeichen überschrieben, holt sie weder diese Seite noch sonst ein Werkzeug zurück.

Häufig gestellte Fragen

Wie repariere ich chinesische Zeichen, die als Buchstabensalat erscheinen?
Fügen Sie den kaputten Text in das Feld oben auf dieser Seite ein. Das Werkzeug probiert jede plausible Kodierungskette durch und sortiert die Ergebnisse, Sie müssen die Kodierung also nicht selbst bestimmen. In der überwiegenden Mehrheit der Fälle lautet die Antwort: UTF-8-Text als GBK gelesen (Sie sehen dann Zeichen wie 娴嬭瘯) oder UTF-8-Text als Windows-1252 gelesen (Sie sehen dann 测试). Beides wird exakt wiederhergestellt.
Was prüft das Badge „Exakt“ eigentlich?
Es führt die Wiederherstellung rückwärts aus. Der wiederhergestellte Text wird erneut mit der ersten Kodierung der Kette kodiert, und diese Bytes werden erneut mit der zweiten Kodierung dekodiert. Ergibt das Zeichen für Zeichen wieder Ihre Eingabe, erklärt die Kette den eingefügten Text vollständig und das Badge zeigt „Exakt“. Das ist eine deterministische Round-Trip-Prüfung und kein Ähnlichkeitswert — deshalb ist ein exaktes Ergebnis auf eine Weise verlässlich, wie es eine sortierte Schätzung nie sein kann.
Warum lässt sich mancher kaputte Text nie wiederherstellen?
Weil der Schaden entstand, bevor Sie ihn zu Gesicht bekamen. Trifft ein Decoder auf eine Bytefolge, die in seiner Kodierung keine Bedeutung hat, bewahrt er die Bytes nicht auf — er ersetzt sie durch U+FFFD (angezeigt als �) und verwirft sie. Das ist verlustbehaftet und irreversibel. Enthält Ihr Text �, sind genau diese Zeichen verloren, ganz gleich welches Werkzeug Sie verwenden. Diese Seite sagt Ihnen das, statt eine selbstbewusst wirkende Schätzung zu liefern.
Was ist der Unterschied zwischen GBK, GB2312 und GB18030?
Es sind drei Generationen derselben Familie, jede eine Obermenge der vorherigen. GB2312 (1980) deckt 6.763 vereinfachte chinesische Zeichen ab — genug für Alltagstexte. GBK (1995) erweitert das auf rund 21.000 Zeichen einschließlich traditioneller Formen. GB18030 (2000, in China verbindlich) deckt ganz Unicode ab. Für die Wiederherstellung von Mojibake ist GBK fast immer die richtige Wahl, weil die Software, die das Problem verursacht hat, meist gegen GBK geschrieben wurde.
Ist ISO-8859-1 dasselbe wie Windows-1252?
In den Standards nicht, in jedem Browser schon. Der WHATWG Encoding Standard — den die Browser implementieren — behandelt iso-8859-1 und latin1 als Labels für windows-1252. Die beiden unterscheiden sich nur im Bereich 0x80–0x9F: Dort hat das echte ISO-8859-1 Steuerzeichen, Windows-1252 dagegen druckbare Satzzeichen wie den Geviertstrich und typografische Anführungszeichen. Weil genau diese druckbaren Zeichen in Mojibake auftauchen, ist Windows-1252 das nützlichere der beiden, und dieses Werkzeug führt es einmal unter beiden Namen.
Wird mein Text irgendwohin hochgeladen?
Nein. Die gesamte Dekodierung passiert in Ihrem Browser mit dessen eingebautem TextDecoder; nichts geht über das Netz, wird gespeichert oder in die URL geschrieben. Das wiegt bei diesem Werkzeug schwerer als sonst: Kaputter Text stammt fast immer aus einem Produktions-Log, einem Kundendatensatz oder einem Datenbank-Dump — also genau aus dem, was man nicht in ein serverseitiges Werkzeug einfügen sollte.
Kann ich eine ganze Datei konvertieren, nicht nur einen Ausschnitt?
Diese Seite verarbeitet eingefügten Text. Für ganze Dateien nehmen Sie die Kommandozeile: iconv -f GBK -t UTF-8 input.txt > output.txt unter macOS oder Linux, beziehungsweise Get-Content -Encoding Default in.txt | Set-Content -Encoding UTF8 out.txt in der PowerShell. Prüfen Sie zuerst eine repräsentative Zeile hier, um zu ermitteln, welche Kodierungen im Befehl stehen müssen — die falsche Richtung auf einer ganzen Datei macht aus einem einzeiligen Problem ein tausendzeiliges.
Warum zeigt das Werkzeug mehrere Kandidaten statt einer Antwort?
Weil mehr als eine Kette lesbaren Text erzeugen kann und das Werkzeug das nicht vor Ihnen verbirgt. Die Kandidaten sind sortiert: zuerst die in sich stimmigen (exakten) Ketten, danach nach einer Lesbarkeitsheuristik, die häufige chinesische Zeichen belohnt und Ersatzzeichen, Halbbreiten-Katakana sowie Steuerzeichen bestraft. Die Heuristik entscheidet Gleichstände, sie ist kein Orakel. Wirken zwei Kandidaten gleichermaßen plausibel, sagt Ihnen die unter jedem angezeigte Kodierungskette, welcher zur tatsächlichen Herkunft Ihrer Daten passt.

Verwandte Werkzeuge

Alle Werkzeuge anzeigen →