Fix garbled characters in a CSV file (free, with Excel and Notepad)
Shift_JIS vs UTF-8, what a BOM does, and two free fixes
You opened a CSV in Excel and the Japanese text turned into strings like 繧オ繝ウ繝励Ν. The file is almost always fine; Excel read it with the wrong character encoding. The free fixes come first.
Hullspark · updated 2026-11-02
The short answer
- The cause is a Shift_JIS / UTF-8 mismatch. A CSV saved as UTF-8 is read by Excel on a Japanese-language Windows PC as Shift_JIS, so the text looks garbled. If the file has a BOM (a small marker at the start), Excel opens it as UTF-8 ([1]).
- Two free fixes. Open the file through Excel's From Text/CSV import and choose UTF-8 ([2]), or re-save the file in Notepad as UTF-8 with BOM. Both need only Windows and Excel.
- A "�" that remains after you choose the right encoding means the characters are already lost. Saving again does not bring them back; export the file again from the source system.
Why it happens
A CSV is plain text, and the encoding is not recorded inside it in a fixed place. The same bytes show different characters depending on the encoding the program assumes. For Japanese CSV files the usual pair is Shift_JIS and UTF-8.
| Shift_JIS | UTF-8 | |
|---|---|---|
| Where it comes from | Windows in Japan; older accounting and business software | Web services, online shops, newer systems |
| Windows code page | 932 ([4]) | 65001 ([4]) |
| BOM | None | Sometimes present, sometimes not |
| Double-click (Japanese Windows) | Reads correctly | Reads correctly with a BOM; garbled without |
A BOM (byte order mark) is a marker at the very start of a file. Microsoft states that a CSV encoded as UTF-8 opens normally in Excel if it was saved with a BOM ([1]). A UTF-8 file without a BOM is the typical case that comes out garbled.
On Windows in another language, Excel assumes that PC's own default encoding. The same file can show サンプル instead, and a Shift_JIS file comes out garbled too. Method 1 works there as well.
Pick the fix from what you see
| What you see | Likely cause | Fix |
|---|---|---|
| Strings like 繧オ繝ウ繝励Ν | UTF-8 read as Shift_JIS | Method 1 or 2 |
| Fine in Excel, garbled in the system you upload to | That system accepts Shift_JIS only | Method 3 |
| Many "�", Japanese mostly unreadable | Shift_JIS read as UTF-8 | Method 1, choose 932 |
| A "�" remains with the right encoding | Characters already lost | Cannot be fixed; export again from the source |
| A file that was already re-saved as 繧オ繝ウ繝励Ν | Garbled twice | Hard by hand (see "When doing it by hand gets heavy") |
Rows of plain English letters and digits look the same in Shift_JIS and UTF-8. The garbling shows up from the first row that contains Japanese.
Method 1: open it with Excel's From Text/CSV (free)
Instead of double-clicking the CSV, open it through Excel's import so you can choose the encoding yourself ([2]).
- Open a blank workbook. On the Data tab, in Get & Transform Data, click From Text/CSV.
- Select the CSV file, then click Import.
- In the preview, open the drop-down that sets the file's character set (File Origin). For a UTF-8 file choose 65001: Unicode (UTF-8); for a Shift_JIS file choose 932 (Japanese, Shift-JIS). The numbers are the Windows code pages ([4]).
- Pick the one that shows the Japanese text correctly in the preview. The delimiter preview updates at the same time.
- Click Load.
The older wizard works too. Go to File > Options > Data, and under "Show legacy data import wizards" select From Text (Legacy). It then appears under Data > Get Data > Legacy Wizards. Its first page has the same setting, called File origin ([3]).
Weak spot: you repeat these steps each time you open the file, and the wording on screen differs slightly between Excel versions.
Method 2: re-save as UTF-8 with BOM in Notepad (free)
- Make a copy of the original file first.
- Open the CSV in Notepad and check that the Japanese text reads correctly. If it does not, Notepad itself guessed the encoding wrong. Do not save; use Method 1 instead.
- Choose File > Save As, set the encoding box at the bottom to UTF-8 with BOM, and save under a new name. On Japanese Windows the label reads "UTF-8 (BOM 付き)".
- Open the new file in Excel. Because it has a BOM, Excel reads it as UTF-8 ([1]).
Weak spot: it is one file at a time. The exact labels in Notepad's Encoding box differ between Windows and Notepad versions, and Microsoft's Excel documentation does not name them.
Method 3: when the other system accepts Shift_JIS only
Some accounting and business systems accept only Shift_JIS CSV files. Reverse Method 2: in Save As, set the encoding to ANSI. On Japanese Windows, ANSI is code page 932, which is Shift_JIS ([4]). On Windows in any other language, ANSI is a different code page and saving this way loses the Japanese text.
Careful: some characters do not exist in Shift_JIS, for example the wave dash 〜, some circled numbers and some kanji. They can turn into "?" on saving. Find and replace them before you save.
When doing it by hand gets heavy
For one file, Method 1 or 2 is enough. Doing it by hand gets heavy in these cases:
- Dozens of files. Monthly sales exports, one CSV per shop. You open and re-save each one.
- Characters that do not fit Shift_JIS. You want to know which row and which character before converting.
- Garbled twice. A file that was already re-saved in the 繧オ繝ウ繝励Ν form.
For these there is a Windows app, CSV Encoding Fixer (Microsoft Store, one-time purchase). Drop CSV and TSV files on it, or pick a folder. It detects Shift_JIS, UTF-8 (with or without BOM), UTF-16 and EUC-JP, and converts to UTF-8 with BOM for Excel or to Shift_JIS. The result is saved as a separate file next to the original, with _utf8bom, _sjis or _utf8 added to the name; the original is not changed. Characters that do not fit Shift_JIS are listed by row, column and character before anything is converted. An option repairs lines that were garbled twice, only where no characters were lost. It makes no network connections, so file contents stay on your PC. It cannot detect ISO-2022-JP or UTF-32, does not open files over 128 MB, and does not handle .xlsx.
See it in the Microsoft Store 日本語のページ
Questions
Is my CSV file broken?
Usually not. The text was saved as UTF-8 and read as Shift_JIS, or the other way round. A line that still shows a � with the right encoding has already lost characters, and saving again does not restore them; export the file again from the source.
What is a BOM?
A marker at the start of a file that tells programs which encoding it uses. Microsoft states that a CSV encoded as UTF-8 opens normally in Excel if it was saved with a BOM.
Will saving the file again in Excel fix it?
Not if it is still garbled. Saving a garbled sheet from Excel can make the wrong characters permanent. Keep a copy of the original before you change anything.
Should I use Shift_JIS or UTF-8?
It depends on where the file is going. To open it in Excel, UTF-8 with BOM is the safe choice. If the system you upload to accepts Shift_JIS only, use Shift_JIS.
Do these steps work for Excel on a Mac?
This page covers Excel and Notepad on Windows. Excel for Mac has different screens and is not covered here.
Can this fix garbled text inside an .xlsx file?
No. The methods here are for plain-text files such as CSV and TSV. An .xlsx is a different format.
Sources
- [1] Microsoft Support: Opening CSV UTF-8 files correctly in Excel. A UTF-8 CSV opens normally if saved with a BOM; otherwise import through the Data tab.: https://support.microsoft.com/en-us/office/opening-csv-utf-8-files-correctly-in-excel-8a935af5-3416-4edd-ba7e-3dfd2bc4a032
- [2] Microsoft Support: Import or export text (.txt or .csv) files. Data tab, From Text/CSV, Import, Load or Transform Data, choosing a delimiter.: https://support.microsoft.com/en-us/office/import-or-export-text-txt-or-csv-files-5250ac4c-663c-47ce-937b-339e391393ba
- [3] Microsoft Support: Text Import Wizard. Set File origin to the character set of the text file; how to enable From Text (Legacy).: https://support.microsoft.com/en-us/office/text-import-wizard-c5b02af6-fda1-4440-899f-f78bafe41857
- [4] Microsoft Learn: Code Page Identifiers. 932 = shift_jis (ANSI/OEM Japanese), 65001 = utf-8; ANSI code pages can differ between computers.: https://learn.microsoft.com/en-us/windows/win32/intl/code-page-identifiers
Related guides
Questions? Support or support@hullspark.com. Privacy Policy