Convert Encoding of JSON Files Online
Detect and convert the character encoding of JSON files directly in your browser. Switch between UTF-8, Latin-1, Windows-1252, and more — no upload required.
How to convert Encoding of JSON files
- Drop your file. The tool reads the raw bytes and picks an encoding: the one named by a byte order mark if there is one, otherwise UTF-8 if the bytes are valid UTF-8, otherwise Windows-1252.
- Check the detected encoding and the preview of the first 2,000 characters. Accented letters and symbols should look right.
- If they do not, choose another source encoding: UTF-8, Latin-1 / Windows-1252, ISO-8859-15, UTF-16 LE or UTF-16 BE. The preview updates as soon as you change it.
- Click Convert & Download UTF-8. The file is saved with _utf8 added to its name.
Your file is processed locally in your browser and is never uploaded. The free limit is 50 MB per file; larger files work if your device has the memory for them.
Worked example
A cheese wholesaler's supplier list was exported from an old Windows system in the Windows-1252 encoding. Read as UTF-8, every accented letter and the euro sign show up as the � replacement symbol.
Input (JSON)
[
{
"supplier": "K�serei Br�ndli",
"city": "Z�rich",
"contact": "Zo� M�ller",
"min_order": "�250"
},
{
"supplier": "Fromagerie B�rard",
"city": "Besan�on",
"contact": "H�l�ne Roux",
"min_order": "�400"
},
{
"supplier": "Caseificio Rossi",
"city": "Parma",
"contact": "Luca Bianchi",
"min_order": "�180"
}
]Settings
- Detected encoding: Latin-1 / Windows-1252 (the bytes are not valid UTF-8)
- Source encoding: Latin-1 / Windows-1252, left as detected
- Output: UTF-8, the only output option
Result
| supplier | city | contact | min_order |
|---|---|---|---|
| Käserei Brändli | Zürich | Zoë Müller | €250 |
| Fromagerie Bérard | Besançon | Hélène Roux | €400 |
| Caseificio Rossi | Parma | Luca Bianchi | €180 |
Windows-1252 stores each of these characters as a single byte that is not valid UTF-8 on its own, which is why a UTF-8 reader shows �. Decoding with the right source encoding recovers them, and the file is saved as UTF-8. The euro sign is a useful test: Windows-1252 stores it as byte 0x80 and ISO-8859-15 as 0xA4, so the wrong choice between those two shows a different symbol.
Working with JSON files
The JSON standard, RFC 8259, requires UTF-8 for JSON exchanged between systems, and many parsers reject anything else. A byte order mark at the start causes trouble too: Python's json module refuses a string that starts with one, and JavaScript's JSON.parse treats it as an unexpected character. The converted file is UTF-8 with no byte order mark, which avoids both problems.
The JSON is not parsed. Keys, key order, spacing and number formatting pass through unchanged, and only the character encoding differs. Text written with \u escapes, such as "Z\u00fcrich", is plain ASCII and never needs converting, because the JSON parser decodes those escapes, not this tool. Encoding problems in JSON usually come from hand-built exports or older systems that write Windows-1252 text into string values. The preview shows the decoded text exactly as it will be saved, so if the names look right there, your parser will read them correctly.
Frequently Asked Questions
Will the tool fix invalid JSON?
No. It only changes the encoding. Syntax errors such as trailing commas or unquoted keys are still there after conversion. Check the result with the JSON Beautifier.
My JSON file is UTF-16. Can I convert it?
Yes. A UTF-16 file with a byte order mark is detected automatically. Without the mark the tool may guess UTF-8, and the preview shows gaps or boxes between the letters. Pick UTF-16 LE or UTF-16 BE by hand.
Which encodings can I convert to?
Only UTF-8. You can read the file as any of the six listed encodings, but the download is always UTF-8, which every current database, language and spreadsheet can read.
Why is there no separate ISO-8859-1 option?
Browsers treat the label ISO-8859-1 as Windows-1252, following the web Encoding Standard, so the two would always give the same result. They are offered as one option, Latin-1 / Windows-1252. Windows-1252 only adds printable characters in bytes 0x80 to 0x9F, such as €, curly quotes and dashes. ISO-8859-15 is a separate table and does change some characters.
What if no source encoding makes the preview look right?
The text may have been damaged before it reached you. A UTF-8 file that was opened and saved as Windows-1252 shows sequences like Zürich in every encoding. Changing the encoding again cannot undo that. Fix the common sequences with Find and Replace, or export the data again from the source.
Related Tools
Trim Whitespace in JSON Files Online
Trim leading and trailing whitespace from all text columns in JSON files, directly in your browser. No upload required.
Find & Replace in JSON Files Online
Find and replace text values in JSON files directly in your browser. Supports plain text and regex patterns across any column — no upload required.
Convert Encoding of CSV Files Online
Detect and convert the character encoding of CSV files directly in your browser. Switch between UTF-8, Latin-1, Windows-1252, and more — no upload required.
JSON Viewer Online
View and inspect JSON files directly in your browser. Browse rows, check column names and data types — no upload required, your data stays on your device.
Convert JSON to Parquet Online
Convert JSON files to Parquet format directly in your browser. No upload required — your data never leaves your device.