Kaputte Umlaute in Dateien reparieren
KIT dreht das Latin-1/Windows-1252-Mojibake im eingefügten Text zurück: war es UTF-8, das als Windows-1252 oder ISO-8859-1 gelesen wurde, wird aus „Müller" wieder „Müller". Gedacht für Text, der aus einem älteren System stammt und beim Öffnen in einem anderen Programm falsche Zeichen zeigt.
Im Browser ausführen – kostenlos
So dreht KIT das Mojibake zurück
Sie fügen den betroffenen Text ein, KIT erkennt die typische Latin-1/Windows-1252-Verfälschung fehlerhaft dargestellter Umlaute und Sonderzeichen und dreht sie nach UTF-8 zurück, dem Standard, den heutige Programme und Datenbanken erwarten. Das Ergebnis steht sofort zum Kopieren bereit und erfordert von Ihnen keine Angabe der ursprünglichen Kodierung. Es geht dabei um genau diesen einen Fehlerfall — UTF-8, das als Latin-1 gelesen wurde —, nicht um eine allgemeine Kodierungserkennung.
Woher das Problem meist kommt
Ein Text wird in einem älteren Windows-Programm gespeichert, danach in einem anderen System oder auf einer Website weiterverarbeitet, das UTF-8 erwartet – und schon erscheinen Umlaute als kryptische Zeichenketten wie „ä" statt „ä". Statt den Text erneut manuell zu exportieren, reicht ein einmaliges Zurückdrehen. Besonders häufig betrifft das Exporte aus älteren Warenwirtschafts- oder Buchhaltungsprogrammen, die noch mit der Windows-Standardkodierung aus den neunziger Jahren arbeiten, während moderne Webanwendungen durchgängig UTF-8 voraussetzen.
Grenzen, die Sie kennen sollten
KIT behebt den Latin-1/Windows-1252-Fall. Bei stark gemischten Verfälschungen innerhalb desselben Textes, etwa wenn einzelne Zeilen aus unterschiedlichen Quellen stammen, kann das Ergebnis im Einzelfall danebenliegen; prüfen Sie es stichprobenartig auf verbleibende Zeichenfehler. Zeichen, die bereits zu Fragezeichen geworden sind, lassen sich nicht mehr zurückholen, und Shift-JIS, GBK oder Windows-1256 wandelt die Funktion nicht um — dafür wäre der ursprüngliche Rohtext nötig, nicht die bereits dargestellten Zeichen.
Nach dem Zurückdrehen
Der UTF-8-Text lässt sich direkt in Webanwendungen, Datenbanken oder anderen KIT-Funktionen wie der CSV-Transformation weiterverwenden, ohne dass erneut fehlerhafte Zeichen auftauchen. Ein einmaliger Schritt erspart damit wiederkehrende manuelle Korrekturen in Excel. Wer regelmäßig solchen Text aus demselben Altsystem erhält, kann das Zurückdrehen zusätzlich über die API in den eigenen Import-Prozess einbinden, statt es jedes Mal von Hand im Browser neu anzustoßen.
Anwendungsfälle
Alter Kundenexport aus dem Warenwirtschaftssystem
Sabine Schneider fügt die betroffenen Zeilen eines CSV-Exports aus einem Altsystem ein, in denen alle Umlaute als „ä" und „ü" erscheinen, und dreht sie vor dem Import ins neue System nach UTF-8 zurück.
Website-Import mit falschen Zeichen
Ein Onlineshop hat eine Produktliste, in der „Größe" als „Größe" erscheint. Der eingefügte Text wird nach UTF-8 zurückgedreht, bevor die Liste live geht.
Weitergabe an eine Partneragentur
Die Schneider IT-Systeme GmbH & Co. KG liefert Daten an eine Partneragentur, die ausschließlich UTF-8 akzeptiert; verfälschte Umlaute im Text werden vor dem Versand zurückgedreht.
Häufige Fragen
Was kostet das Zurückdrehen nach UTF-8?
Im Browser ist die Nutzung kostenlos, unabhängig davon, wie oft Sie sie aufrufen. Wer die API einbindet, zahlt $0.002 je Anfrage.
Woran erkenne ich, dass mein Text betroffen ist?
Typisches Zeichen sind Zeichenfolgen wie „ä", „ü" oder „ß" anstelle von ä, ü oder ß im Text.
Verlässt mein Text dabei den Browser?
Nicht im Browser: Dort bleibt der eingefügte Text auf Ihrem Gerät, während KIT ihn direkt dort verarbeitet. Erst die API-Nutzung setzt eine Übertragung voraus.
Wandelt KIT jede alte Kodierung um?
Nein. KIT dreht den Latin-1/Windows-1252-Fall zurück — UTF-8, das falsch gelesen wurde. Es ist kein allgemeiner Kodierungs-Konverter und wandelt kein Shift-JIS, GBK oder Windows-1256 um.
Funktioniert das auch mit anderem Text als CSV?
Ja, die Funktion arbeitet mit jedem eingefügten reinen Text, etwa aus JSON- oder TXT-Dateien, nicht nur mit CSV.
Ist ein Konto notwendig?
Nein, eine Registrierung ist nicht vorgesehen. Die Web-Oberfläche steht ohne Anmeldung offen, die API wird pro Anfrage abgerechnet.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/data/to-utf8 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"café"}'const res = await fetch("https://api.kit.forhosting.com/data/to-utf8", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "café"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/to-utf8",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "café"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/to-utf8", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"café"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"café"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/to-utf8", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "café"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.to_utf8",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_mb | 25 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |