Why your CSV shows é and ’ in Excel, and how to fix it

You open a bank or CRM export in Excel and “Café” reads “Café”, “don’t” reads “don’t”, and a euro sign has turned into “€”. In most cases nothing is wrong with the data: the file was saved as UTF-8 and Excel read it as a different encoding. This guide shows how to tell which of two situations you are in, how to fix each one in Excel or Google Sheets, and how SpreadsheetFix repairs both without you mapping characters by hand.

Updated
Applies to
Excel, Google Sheets, CSV
SpreadsheetFix rule
Free up to 5,000 rows

Why this happens

Every character in a CSV is stored as one or more bytes, and the encoding is the rulebook that maps bytes to characters. UTF-8, which almost every modern system exports, stores plain English letters in one byte and accented letters, curly quotes and currency symbols in two or three. The CSV format has nowhere to declare which rulebook was used, so the program opening the file has to guess.

When you double-click a CSV, Excel on Windows usually guesses your system’s legacy code page, typically Windows-1252 on English and Western European setups. That code page reads every byte as a character of its own. So the two bytes of é are shown as two characters, à and ©, and the three bytes of a curly apostrophe become â, € and ™. The pattern is distinctive: à or  followed by an odd symbol almost always stands for an accented letter, and †followed by another character almost always stands for punctuation such as ’, “, – or •.

Two different situations look identical on screen. In the first, the file is fine and only the way Excel opened it is wrong, so reopening it correctly fixes everything. In the second, someone already opened the file the wrong way and saved it, or a system upstream did, and the garbled characters are now the real content of the cells. Reimporting can’t help then, because the file genuinely contains “Café”. To tell them apart, open the CSV in a plain text editor such as Notepad or TextEdit: if you see “Café” there, it’s the first case; if you see “Café”, it’s the second.

If garbled text goes through the same mistake a second time, each garbled character is garbled again, and é turns into a longer run such as é. The cause and the cure are the same, just applied twice.

Fix it by hand

In Excel, when the file itself is fine

  1. 1

    Open a blank workbook instead of double-clicking the CSV.

  2. 2

    Go to Data > Get Data > From File > From Text/CSV (Data > From Text in older versions) and pick the file.

  3. 3

    In the preview window, set File Origin to 65001: Unicode (UTF-8). The preview updates straight away, so check that é and ’ now look right.

  4. 4

    Check the delimiter in the same window, then click Load.

  5. 5

    If you need to pass the file on, use File > Save As and choose CSV UTF-8 (Comma delimited). That format starts the file with a byte order mark, which tells Excel to read it as UTF-8 the next time someone opens it.

Older versions of Excel, including on a Mac, use the Text Import Wizard instead, where the same setting is also called File origin.

In Google Sheets

  1. 1

    Use File > Import > Upload and choose the CSV.

  2. 2

    Sheets expects UTF-8, so a file that is fine displays correctly without any encoding setting.

  3. 3

    If the cells still show é in Sheets, the garbling is inside the file itself, so follow the next method.

When the text itself is garbled

  1. 1

    Open Find and Replace (Ctrl+H) and make sure Match entire cell contents is switched off.

  2. 2

    Replace each garbled sequence with the character it stands for: é with é, è with è, ü with ü, ö with ö, ’ with ’, – with –, and so on for every accented letter and symbol your data uses.

  3. 3

    Do the longer sequences first. Many of them share their first characters, so replacing a short one too early can leave half-repaired text behind.

  4. 4

    Check a sample of rows afterwards, especially names from other languages: any sequence missing from your list stays broken.

This works, but it is slow and easy to get wrong on a file with names from several countries, which is where an automatic repair earns its keep.

Fix it with SpreadsheetFix

SpreadsheetFix handles both situations. When you load a CSV, it reads the raw bytes and decides the encoding itself: a byte order mark is honoured, valid UTF-8 is read as UTF-8, and anything that isn’t valid UTF-8 is read as Windows-1252, the code page older Windows software writes. A file that was only opened the wrong way comes through clean, with no setting to choose.

For text that is already garbled, the Fix Encoding rule reverses the mistake instead of looking characters up in a table. It turns each character of a suspect cell back into the Windows-1252 byte it came from, then reads those bytes as UTF-8. If that gives valid text, the cell is replaced; if any character couldn’t have come from this mistake, the cell is left alone. Text that went through the mistake twice is repaired in a second pass.

The CSV you download is UTF-8 with a byte order mark, so double-clicking it in Excel shows the accents correctly. Every changed cell is listed in the preview before you export, and amount columns are covered by the totals check, so you can confirm that repairing payee names didn’t touch a single number.

Choose a fileor drop a CSV, TSV or Excel file here, up to 50 MBProcessed in your browser. Nothing is uploaded.

No file to hand?

The same cleaner is on the Fix CSV Encoding page.

Before and after

Before
date,payee,memo,amount
2024-03-04,Café Müller,Team coffee,-18.40
2024-03-05,São Paulo Imports,Invoice – March,-1250.00
2024-03-06,Zoë Dupont,Refund – didn’t arrive,45.00
After
date,payee,memo,amount
2024-03-04,Café Müller,Team coffee,-18.40
2024-03-05,São Paulo Imports,Invoice – March,-1250.00
2024-03-06,Zoë Dupont,Refund – didn’t arrive,45.00

5 cells repaired. Dates and amounts are unchanged.

What it won’t catch

  • A cell is only repaired when the whole cell round-trips. A cell that mixes correct accents with garbled ones, such as “Rosé Café”, is left as it is, so search the preview for à and †after cleaning.
  • Characters that were saved as question marks or replacement boxes (? or �) can’t be recovered. Those bytes were thrown away when the file was written, so the only fix is a fresh export from the source system.
  • Other legacy encodings, such as the code pages used for Cyrillic, Greek or Japanese files, aren’t detected. A file that isn’t valid UTF-8 is always read as Windows-1252.

Questions

Why does Excel show é instead of é?

Your CSV was saved as UTF-8 and Excel opened it with your computer’s legacy code page, usually Windows-1252, which reads each of the two bytes of é as a separate character. Import the file with File Origin set to UTF-8, or load it in SpreadsheetFix, which detects the encoding for you.

What does ’ mean in a spreadsheet?

It is a curly apostrophe (’) whose three UTF-8 bytes were read as three Windows-1252 characters. In the same way, – is an en dash, • is a bullet and € is a euro sign.

Will saving as CSV UTF-8 fix it?

Only if the cells look right when you save. Saving as CSV UTF-8 stores whatever is in the cells, so if they already contain garbled text, the new file contains that garbled text too, correctly encoded.

Is my file uploaded to repair it?

No. The bytes are decoded and repaired in your browser, and the file never reaches SpreadsheetFix’s servers. Fix Encoding is a free rule for files up to 5,000 rows.