Why CSV Files Show Garbled Text in Excel, and How to Fix It (UTF-8, Shift_JIS, BOM)
Updated 2026-09-01
You open a CSV in Excel and non-English text turns into gibberish — a very common problem. The cause is almost always one thing: the character encoding used to save the file differs from the one Excel tried to read it with. Once you understand the mechanism, both the fix and the prevention are simple.
Why it happens
A character encoding is a way of mapping characters to bytes. The two commonly used for CSV with Japanese are UTF-8 and Shift_JIS. The same character takes different bytes in each — for example a hiragana character is 3 bytes in UTF-8 but 2 in Shift_JIS. Read a UTF-8 file as Shift_JIS and the byte boundaries shift, producing meaningless symbols. That is mojibake (garbled text).
"UTF-8 with BOM" is the key
On Windows, Excel tends to interpret a double-clicked CSV as a Shift_JIS-family encoding by default, so a plain UTF-8 CSV comes out garbled. A widely used remedy is the BOM (byte order mark): adding a 3-byte marker at the start of the file that says "this is UTF-8" lets Excel recognize it and open it correctly. A tool option like "Save as UTF-8 (with BOM)" does exactly this.
How to fix it now
- In Excel, use Data → "From Text/CSV" and choose "65001: Unicode (UTF-8)" as the encoding (importing rather than double-clicking is the reliable route).
- Open it in Google Sheets, which often auto-detects the encoding, then re-save as an Excel file.
- Open the file in a text editor (like VS Code) and re-save it as "UTF-8 with BOM" before opening in Excel.
- On the side that produces the data, export as "UTF-8 (with BOM)" or Shift_JIS.
Prevention (decide on the producing side)
If your audience is mainly Windows Excel, exporting as UTF-8 with BOM or as Shift_JIS makes it display correctly on open. But Shift_JIS cannot represent emoji and some characters, so UTF-8 with BOM is safer when a wide range of characters may appear. For system-to-system exchange, plain UTF-8 without BOM is the standard, so distinguish "for people to open in Excel" from "for systems to read."
Garbled text vs. misaligned columns are different problems
Garbled characters are an encoding problem, but columns shifting or breaking on line breaks is a different cause (delimiter and quoting). Values containing a comma or newline must be wrapped in double quotes (RFC 4180). If the text is no longer garbled but columns still shift, review the delimiter and quoting.
Our CSV⇔JSON converter runs in your browser and lets you choose the delimiter (comma, tab, semicolon) and whether there is a header row. To dig deeper into how encodings work, see our guide on counting characters (bytes, code points, and graphemes).