Blog Tutorial

How to Save a CSV File Correctly

Saving a CSV file looks simple: File, Save As, pick CSV, done. Then you open the file somewhere else and your customer names with accents have turned into question marks, your phon…

VTVideoShala Team · May 28, 2026 ·7 min read
How to Save a CSV File Correctly

Saving a CSV file looks simple: File, Save As, pick CSV, done. Then you open the file somewhere else and your customer names with accents have turned into question marks, your phone numbers have lost their leading zeros and your Hindi text is garbled. The problem is never the CSV part. It is the encoding, the line endings or Excel auto-converting your data before you even noticed.

This guide covers how to save a CSV file the way you actually want it. Across Excel, Google Sheets, Notepad and Numbers. Plus the four CSV variants Excel offers, the Excel re-open trap and how to handle commas inside your data.

The fastest method, for each application

ApplicationHow to save as CSV UTF-8
Excel 2016+ (Windows) File, Save As, pick CSV UTF-8 (Comma delimited) (*.csv) from the Save as type dropdown
Excel for Mac (recent) File, Save As, pick CSV UTF-8 (Comma delimited) (.csv)
Excel 2013 or older Save as Unicode Text first, open in Notepad, Save As with Encoding set to UTF-8 and rename the extension to .csv
Google Sheets File, Download, Comma Separated Values (.csv). Always UTF-8 by default
Apple Numbers File, Export to, CSV, Advanced Options, Text Encoding: Unicode (UTF-8)
LibreOffice Calc File, Save As, pick CSV, tick Edit filter settings, set Character set to Unicode (UTF-8)

If you are in any doubt about which encoding to pick, pick UTF-8. It is the modern default and works with every system that handles CSV.

Save a CSV file from Excel (the standard path)

  1. Open your spreadsheet in Excel.
  2. Click File > Save As. On newer Excel, you can also press F12.
  3. Choose a folder.
  4. Type the filename without the extension. Excel adds .csv automatically.
  5. In the Save as type dropdown, you will see several CSV options. Pick CSV UTF-8 (Comma delimited) (*.csv).
  6. Click Save.
  7. Excel may show a warning saying "Some features in your workbook might be lost if you save as CSV". Click Yes to continue.

The file is now on disk. Only the active sheet is saved. Multiple sheets need multiple CSV files.

The re-open trap: after you save as CSV UTF-8 and close Excel, do NOT reopen the file in Excel and save again. Excel may convert the encoding back to ANSI silently. If you need to edit the CSV after saving, use Notepad++ (Windows), TextEdit (Mac) or open it in Google Sheets instead.

The four CSV variants Excel offers (and when to use each)

Excel's Save as type dropdown shows multiple CSV options that look almost identical. They are not. Each one writes the file differently.

VariantWhat it actually does
CSV UTF-8 (Comma delimited) Comma-separated, UTF-8 encoded with BOM, Windows CRLF line endings. Best modern default. Pick this unless you have a specific reason.
CSV (Comma delimited) Comma-separated, ANSI/Windows-1252 encoding, Windows CRLF line endings. Breaks on any non-English character. Use only for English-only data going to legacy Windows systems.
CSV (Macintosh) Comma-separated, Macintosh encoding, CR-only line endings. Use only when explicitly told to by a macOS-only legacy tool.
CSV (MS-DOS) Comma-separated, OEM-DOS encoding (code page 437 or 850), CRLF line endings. Essentially never the right choice in 2026 unless you are exporting to a DOS-era database.

Save a CSV file from Google Sheets (the cleanest path)

Google Sheets has one CSV format and it is correct: UTF-8 with LF line endings.

  1. Open the spreadsheet in Google Sheets.
  2. Click File > Download.
  3. Pick Comma Separated Values (.csv).
  4. The file downloads to your usual Downloads folder.

That is it. No encoding picker, no Save as type dropdown, no warnings about features being lost. If your data contains accents, Hindi, Tamil or emoji, they survive intact. This is why we often recommend the round trip: open the file in Sheets, do your edits, download as CSV. The result is clean every time.

Save a CSV file from Notepad (manual encoding override)

If you have a CSV that already exists and just need to change its encoding, Notepad is the simplest tool. This is the standard workaround for old Excel versions that do not have a CSV UTF-8 option.

  1. Open the CSV file in Notepad. Right-click the file, Open with > Notepad.
  2. Click File > Save As.
  3. In the Save as type dropdown, pick All Files.
  4. At the bottom of the dialog, change the Encoding dropdown to UTF-8.
  5. Keep the .csv extension on the filename.
  6. Click Save. Notepad may ask to overwrite, click Yes.

The file is now UTF-8 encoded. Do not open it again in Excel after this or you may lose the encoding.

The Excel auto-conversion trap (and how to avoid it)

Excel mangles CSV data the moment you open the file. Three classic failures:

Data typeWhat Excel does to it
Phone number 09876543210 Strips the leading zero to 9876543210 because Excel reads it as a number, not text
Long ID 123456789012345 Converts to scientific notation 1.23457E+14 and you lose the original value forever
Date 03/05/2026 Interprets as 3 May or 5 March depending on your regional setting, then reformats it to local default
Product code 1E10 Interprets as 10 to the 10th power and converts to 10000000000

If Excel has done this and you save the file, the corrupted version overwrites the original. The fix is to import instead of open.

The import path that preserves types

  1. Open Excel with a blank workbook.
  2. Go to Data > Get Data > From Text/CSV.
  3. Pick your CSV file.
  4. In the preview window, click Transform Data to open Power Query.
  5. For each column that should stay as text (phone numbers, IDs, product codes), right-click the column header, Change Type, pick Text.
  6. Click Close & Load.

The data lands in Excel as text where you said so, preserving leading zeros and long numbers. When you re-save, the values stay intact. Microsoft's official text and CSV import guide covers more advanced import options.

Commas inside your data: the quote-wrapping rule

What if a cell's value contains a comma? Without escaping, the comma would be read as a column separator and break the row. CSV solves this by wrapping values that contain commas (or quotes or newlines) in double quotes.

name,address,phone
Rakesh,"525, City Centre, Sector 12, Dwarka",9876543210
Priya,"42, Connaught Place",9123456789

Excel and Google Sheets handle this automatically when you Save As CSV. They wrap values that need wrapping and leave the rest alone. If you generate CSV files from custom scripts (Python's csv module, Node's fast-csv, PHP's fputcsv), make sure the library follows RFC 4180, the CSV standard.

If a value contains a double quote

Double the inner quote. The value She said "hi" becomes "She said ""hi""" in the CSV. Excel handles this transparently, custom scripts need to know about it.

Common problems and quick fixes

ProblemFix
Accents show as ??? after saving Save as CSV UTF-8 instead of plain CSV. If old Excel, use Google Sheets or the Notepad workaround.
Leading zeros disappeared from phone numbers Excel auto-converted them. Re-import the original via Data, From Text/CSV with the column set to Text type.
Long IDs turned into scientific notation Same fix as above. Set the column type to Text during import.
Import tool rejects the file Could be line endings (CRLF vs LF), BOM markers or wrong delimiter. Open in Notepad++, check Encoding and EOL menus.
CSV opened, looks fine in Excel, breaks elsewhere Excel may have saved it as ANSI silently after editing. Re-save through Google Sheets to force UTF-8.
Rows shifted by one column A value in row N has an unescaped comma or quote. Open in a text editor and look for the row that has the wrong number of commas.

Picking the right CSV variant in 30 seconds

You only need to remember three rules. First, if the data is going anywhere modern (a SaaS app, a database, a partner system, an API), use CSV UTF-8. Second, if you are between applications you control (Excel to Excel on Windows with English-only data), plain CSV works. Third, if you are sending the file to Mac users in a creative agency, the Mac CSV variant exists but realistically CSV UTF-8 still works almost everywhere.

The encoding decision matters more than people realise. A wrong encoding silently corrupts the very text you cared about preserving and you may not notice until a colleague calls to complain that all the names are garbled.

If you are working with contact data specifically, our companion guides cover the full pipeline: importing a CSV file to contacts, sending a CSV file by email and creating a VCF file of contacts as the alternative format. Save it right, send it right, import it right.

Frequently Asked Questions

Why does my CSV file show ??? or garbled characters? +
Encoding mismatch. You saved the file as plain CSV (which uses ANSI or Windows-1252 encoding in Excel) but it contains non-English characters: accents, Hindi, Tamil, emoji, currency symbols. The fix is to save as CSV UTF-8 (Comma delimited) instead of plain CSV. In Excel 2016 and later, this option is in the Save As Type dropdown. In older Excel, use Google Sheets instead or save as Unicode Text and rename the extension.
What is the difference between CSV and CSV UTF-8? +
Both use commas to separate values. The difference is the character encoding. Plain CSV uses ANSI (Windows-1252 on Windows), which supports only about 256 characters and corrupts anything outside the English alphabet plus a few European accents. CSV UTF-8 supports every character in every language, plus emoji and most symbols. Always pick CSV UTF-8 unless the receiving system specifically requires ANSI.
Why does Excel keep changing my CSV file? +
Excel does auto-conversion when it opens a CSV file. Phone numbers with leading zeros lose the zeros. Long numbers convert to scientific notation. Dates get reformatted to your local format. If you then save the file, the corrupted version overwrites the original. To prevent this, either import the CSV using Data, From Text/CSV (which lets you set column types) or open the file in Google Sheets or a text editor instead of Excel.
What line ending should a CSV file use? +
Windows-style CRLF (carriage return plus line feed) is the safest default and is what Excel writes by default on Windows. Unix-style LF (line feed only) is what most modern systems and APIs prefer. Many import tools accept either, but some legacy systems break on the wrong one. Google Sheets always writes LF. If an import fails with no error message, the line ending is a likely culprit. Open the file in Notepad++ (Windows) and use Edit, EOL Conversion, to switch between them.
VT

VideoShala Team

Author

The VideoShala editorial team.