Skip to main content
What you enter is never sent to a server. It is processed entirely in your browser and not stored anywhere.

Fix Garbled Text (Mojibake)

Paste text that came out of a CSV, email, subtitle file or database looking like It’s café and get It’s café back. The fixer works out which encoding mismatch produced the garbage, including text that was mangled twice, and also decodes escapes like é and é and normalizes decomposed Unicode from macOS file names. Nothing leaves your browser.

Paste a string and the result appears here.

Other possible interpretations

Try:

Why text gets garbled

Text is stored as bytes, and the program reading it has to guess (or be told) which character encoding to use. When the writer used UTF-8 and the reader assumed Windows-1252 or Latin-1, every non-ASCII character turns into two or three odd characters. The Japanese word mojibake ("character transformation") is the usual name for this. As long as the bytes survived, the process can be reversed, which is what this tool does.

Looks likeCauseTypical situationFixable?
é ü ’ —UTF-8 bytes read as Windows-1252 / Latin-1Opening a UTF-8 CSV in Excel, email subjects, a database column set to latin1Yes
é ’UTF-8 misread as Windows-1252 twiceGarbled text saved again as UTF-8, then misread againYes
 stray  before symbolsNon-breaking space or © read as Latin-1Copied web pages, WordPress exportsYes
??? �Characters replaced because the target charset could not store themSaving to a legacy database or ASCII-only systemNo, the bytes are gone
Accents that split in search or sortDecomposed Unicode (NFD) from macOS file namesFiles zipped on a Mac, Google Drive namesYes (NFC normalization)

Fixing the root cause

NFC and NFD normalization

Unicode can write é as one code point (U+00E9, NFC) or as e plus a combining acute accent (U+0065 U+0301, NFD). macOS stores file names in NFD, so names copied to Windows or Linux may fail to match searches, break links or display oddly even though they look identical. Normalizing to NFC merges the pieces back into single characters. The same applies to Korean Hangul, where NFD splits syllables into separate jamo, and to Vietnamese with its stacked diacritics.

FAQ

It says the text cannot be recovered.

If characters were replaced by ? or �, the original bytes were discarded when the text was saved. The only fix is to export the source again as UTF-8.

Only part of the text was repaired.

Some bytes were probably altered while copying, for example by a text editor that normalized spaces or quotes. Copy again from the original file, or check "Other possible interpretations".

Is my text uploaded?

No. Re-decoding and normalization run in your browser; nothing is transmitted or stored.

Sources