fix weird characters in CSV files - encoding detection and mojibake repair
When a CSV shows José instead of José, café instead of café, or “ where quotation marks should be, the bytes were written in one character encoding and read in another. This tool fixes both halves of that problem, entirely in your browser.
how to use it
- Drop the file with the weird characters. The encoding is sniffed from the bytes before any text is decoded, and a chip tells you which one was found.
- If the garbling arrived already baked into the text by an earlier tool, a garbled text · click to fix chip appears.
- Click it. Each repair is verified by reversing the exact byte damage, so text that only looks wrong is left alone.
- Export clean UTF-8 - and switch on the BOM under csv options if the file is going back into Excel, or it will re-create the same mess on the way out.
- Encoding detection at drop: the file's bytes are sniffed before any text is decoded - windows-1252 (Excel's usual CSV save) and UTF-16 (Excel's "Unicode Text") are recognized and decoded correctly, so accents never turn into replacement characters in the first place.
- Byte-verified mojibake repair: text garbled by an earlier tool is repaired by reversing the exact damage - encode the garbled text back to windows-1252 bytes, re-read them as UTF-8. A repair is only accepted when that roundtrip is valid, so legitimate text like SÃO PAULO is mathematically distinguishable and never touched.
- Double-encoded damage (é for é) unwinds too - the repair iterates until the text is clean.
- Honest by default: a chip tells you which encoding was detected, a warning chip counts repairable cells, and the fix is a visible pipeline step you can toggle or undo.
- And it writes correctly too: exports can carry a UTF-8 BOM (plus CRLF line endings) so Excel opens accented characters properly instead of re-creating the same mojibake on the way out - one click, under "csv options".
"CSV" is a loose term here, and paste means paste anything: TSV, semicolon and pipe delimited files, ranges copied from Excel or Google Sheets, SQL client result grids, even tables copied off a web page (they arrive tab-separated) - the delimiter is detected automatically. One delimiter is chosen for the whole file; if a column turns out to carry its own separator inside it, click that column's header and choose split at delimiter to break it into real columns.
every tool in the box
- data workbench - profile, clean, transform, and export CSV, JSON, and SQLite - the full suite
- JSON flattener - nested JSON or NDJSON to flat columns, arrays and objects unrolled
- CSV PII scrubber - find emails, phones, SSNs, and card numbers - mask, hash, or drop them
- JSON to CSV - convert JSON or NDJSON to CSV with full column control
- CSV to JSON - convert CSV to JSON or NDJSON, streamed at any size
- Excel to CSV - read .xlsx workbooks and export CSV, sheets and all
- CSV to Excel - write a real .xlsx where leading zeros and dates survive
- SQL on CSV - real SQL over your files: joins, GROUP BY, a read-only console
- CSV to SQLite - drop several files, get one .sqlite database with discovered foreign keys
- CSV to SQL - CREATE TABLE and INSERT statements for Postgres, MySQL, SQL Server, SQLite
- JSON to TypeScript - TypeScript interfaces and JSON Schema derived from your real data
- large CSV viewer - open files past Excel's 1,048,576-row limit without loading them into RAM
- regex painter - highlight example matches, get a verified regular expression back
- encoding fixer - detect windows-1252/UTF-16 and repair garbled text (José → José) (this page)
- log parser - read log files as events: layouts detected, stack traces kept whole, timestamps normalized, and a volume-over-time strip drawn in SQL across every row
- visualize - chart any table you have open - bar, line, area or point - drag across it to filter, and export svg, png, or the vega-lite spec that drew it
- theme builder - design, test, and export custom color themes with live previews, palette derivation, and contrast diagnostics
Like every unfckr tool, this runs 100% in your browser: no upload, no servers, no signup, no analytics. A Content-Security-Policy header blocks every programmatic network channel, so not even malicious code could phone home - and you can watch it happen: the privacy page runs six live escape attempts and shows the browser refusing each one.
↑ back to the tool