🔒 Runs in your browser 0 rows × 0 cols

Online CSV Editor | Free, keeps leading zeros and never garbles text

Drag & drop a CSV file here

Leading zeros in phone numbers and ZIP codes stay exactly as they are.
No Excel-style auto-conversion — every value is edited safely as text.

🔒 Your files are processed only in your browser and are never stored on our server.

1
Open a CSVEncoding is auto-detected
→
2
EditClick a cell and type
→
3
SaveExport to CSV, Excel or HTML
🔢Zeros stayPhone numbers & ZIPs kept as text
🈁No garbled textEncoding auto-detected
📅No surprise dates“1-2” stays “1-2”
✏️Easy editingAdd or delete rows & columns

What this tool does

HANECSV is a free tool for opening and editing CSV files right in your browser. No installation or sign-up is required. Files are processed only inside the browser on your computer and are never sent to or stored on our server, so you can safely work with customer lists and other confidential data.

The biggest problem with handling CSV files in Excel is that it silently rewrites the contents the moment you open them. This tool treats every value as text, so those conversions never happen.

All of these features are free, with no limit on the number of files or rows. The editing features are all in the toolbar at the top of the screen — just click the button you need.

How to use it (3 steps)

  1. Open a CSVDrag and drop a file or click “Choose a file to start”. The encoding is detected automatically, so there is no need to convert anything first. Excel files (.xlsx / .xls) open directly too. The HANETOOL rabbit holding a document
  2. EditClick a cell and type. Buttons for row and column operations, sorting, filtering and find-and-replace are in the toolbar at the top. Undo and redo are supported. The HANETOOL rabbit pointing out a tip
  3. SaveClick the “CSV” button to choose the encoding and delimiter. Pick “UTF-8 (with BOM)” if the file will be opened in Excel, “UTF-8 (no BOM)” for importing into web apps and databases, or “Shift_JIS” for older Japanese software. The HANETOOL rabbit celebrating

Why CSV files show garbled characters

The cause: an encoding mismatch

A CSV file doesn’t record which encoding it uses. If the encoding used to open it differs from the one used to save it, the text gets garbled.

A CSV is just plain text, and the file itself holds no information about which character encoding it was written in. When the encoding used to save the file differs from the one the software assumes when opening it, you get garbled characters (often called “mojibake”), such as “é” instead of “é”. Today most CSV files are UTF-8, but legacy encodings such as Windows-1252 (Western European) and Shift_JIS (Japanese) are still common.

A typical case is a UTF-8 CSV downloaded from a web service and opened in Excel with a double-click. Excel for Windows reads a double-clicked CSV in the system’s legacy code page (Windows-1252 on US systems, Shift_JIS on Japanese ones), so accented letters, symbols and non-Latin text turn into strings of junk characters. The same thing happens the other way round when a legacy-encoded file is opened as UTF-8.

UTF-8 vs. legacy encodings

Neither is “right” — match what the recipient expects. Note that legacy encodings can’t store every character.

UTF-8 can represent every character in the world in a single scheme and is the standard for the web, Mac and most modern systems. Legacy encodings such as Windows-1252 or the Japanese Shift_JIS only cover a limited set of characters, but they are still used by older accounting software and business systems.

Neither is “correct” — the right choice is whatever the recipient’s system expects. Keep in mind that legacy encodings simply lack many characters: saving emoji, certain symbols or text in other scripts in a legacy encoding can drop those characters or replace them with question marks.

With or without a BOM makes a difference

As a rule: with a BOM for opening in Excel, without a BOM for importing into web systems.

A UTF-8 file can start with a 3-byte marker called a BOM (byte order mark). When it’s there, Excel recognizes the file as UTF-8 and opens it correctly. UTF-8 without a BOM, on the other hand, is mistaken for the legacy code page when double-clicked, and the text gets garbled.

So the rule of thumb is “with a BOM for Excel, without a BOM for web systems”. If you give a BOM file to a system that expects none, an invisible character ends up at the start of the first column header and can cause import errors. If the system specifies a format, always follow it.

How to fix garbled CSV text

There are three main ways to fix garbled text: reopen the file in this tool, import it into Excel with the encoding specified, or convert and re-save it in a text editor such as Notepad. The first is the quickest.

Open and fix it with this tool

Drag and drop the file and it’s displayed correctly. Then just save it again in the encoding you need.

Drag a garbled CSV into this tool and the encoding is detected automatically so the text displays correctly. Then choose the encoding you need from the “CSV” button and save it again — that’s it. No software needs to be installed. The detected encoding is shown at the top of the screen, so you can also use the tool just to find out what encoding a file uses.

Specify the encoding when importing into Excel

Don’t double-click. Use Data → From Text/CSV and choose “65001: Unicode (UTF-8)”.

If you use Excel, the reliable way is to start Excel first and import the file instead of double-clicking it. On the Data tab, choose “From Text/CSV” and select the file. In the dialog, set “File Origin” to “65001: Unicode (UTF-8)” and the garbling disappears. Check the preview and click “Load”.

Even this way, columns that contain only digits are imported as numbers, so leading zeros are still lost. To keep them, click “Transform Data” in the import dialog and set the data type of those columns to “Text”.

Check and convert in Notepad

Text that merely displays correctly hasn’t been converted. Use “Save As” and pick a different encoding to re-save the file.

When you open a CSV in Windows Notepad, the current encoding is shown at the bottom right, so you can check what the file really uses. Go to File → Save As and set Encoding to “UTF-8 with BOM” (or “ANSI” for your system’s legacy code page). After that, double-clicking the file in Excel won’t garble it.

People often say “I opened it in Notepad and it’s still broken” — that’s because only Notepad’s display was correct; the file itself was never converted. Always save it again. Also note that Notepad gets slow with large CSV files and doesn’t show columns, so it isn’t well suited to checking the contents.

Garbled text on a Mac

In Excel for Mac, specify the encoding via File → Import. This tool opens the file as is.

Excel for Mac is weak at detecting encodings and often garbles CSV files created on Windows in a legacy encoding. In Excel for Mac, go to File → Import → CSV file to open a wizard where you can specify the encoding.

This tool runs in any browser on a Mac, so you can open files without worrying about Excel versions. When sending a CSV made on a Mac to someone on Windows, saving it as “UTF-8 (with BOM)” avoids problems on their side.

Why Excel removes leading zeros from CSV files

Why do phone numbers and ZIP codes lose their zeros in Excel?

It happens when the file is opened in Excel: Excel decides that digit-only values are numbers and drops the leading zeros. It doesn’t happen when you open the file with this tool.

When Excel opens a CSV, it inspects each cell, decides “this is a number” or “this is a date”, and converts it to that type. “0312345678” contains only digits, so it’s treated as a number — and since leading zeros are meaningless for numbers, it becomes “312345678”. A ZIP code such as “02134” becomes “2134” for the same reason.

The real trouble is that if you save over the file after this conversion, the missing zeros become permanent. Even if the original file still had them, they’re gone once you save again. Dates work the same way: “1-2” gets saved as January 2.

How to save without losing zeros (with this tool)

This tool treats every value as text, so zeros are never lost. There’s also an option to protect zeros when the file is opened in Excel.

Because this tool treats every value as text, zeros are never lost when you open or save a file, and nothing is converted into a date.

In addition, if you tick “Keep zeros and prevent dates in Excel” in the CSV save dialog, the affected values are written as ="0312345678". Written this way, the zeros survive even when the file is double-clicked open in Excel. This is Excel-specific notation, though, so leave it off if the file is going into another system.

If you know the file will be opened in Excel, saving it as an Excel workbook (.xlsx) is another reliable option. An .xlsx stores a type for each cell, so values saved as text stay as text.

Export in the format another system requires

When accounting software or a business system rejects a CSV import, the cause is usually the file’s encoding or the format of its values. Export with the settings the target system requires, and the import goes through.

Common reasons a CSV import fails

Usually an encoding mismatch, or values changed by opening the file in Excel (lost zeros, unwanted dates).

The most common cause is an encoding mismatch. Check which encoding the target system supports and save the file in that format. If nothing is specified, “UTF-8 (no BOM)” is the safest first try. Importing a file with a BOM can put an invisible character at the start of the first column header and trigger errors such as “column name does not match”.

The next most common cause is values altered by opening the file in Excel. Leading zeros dropped, values turned into dates, long numbers converted to scientific notation — import a file in that state and the system rejects the values as invalid. The reliable fix is to edit the original file directly in this tool instead of opening it in Excel.

Line breaks, commas or double quotes inside a cell can also cause errors, depending on what the target system supports. Check that such values are enclosed in double quotes.

Check the encoding

The detected encoding appears at the top of the screen when you open a file. When saving, you can choose from three encodings and two delimiters.

When you open a file in this tool, the detected encoding is shown at the top of the screen. It’s handy for finding out what encoding a file you received uses.

When saving, you can choose “UTF-8 (with BOM)”, “Shift_JIS” or “UTF-8 (no BOM)”. You can also choose a comma (CSV) or tab (TSV) delimiter, so systems that only accept tab-separated text are covered too. When a filter is active, you can export only the rows currently shown.

How it compares with other approaches

There are three main ways to work with CSV files. Spreadsheet apps are easy to edit in, but watch out for values being converted automatically.

 Spreadsheet appText editorHANETOOL (CSV-only)
Leading zerosMay be lost when treated as numbersKeptKept
Auto-conversion to dates“1-2” may become a dateNeverNever
EncodingText may be garbled depending on how it’s openedSpecify and convert manuallyAuto-detected (UTF-8, Windows-1252, Shift_JIS, etc.)
Editing as a tableEasyHard to read; columns don’t line upEasy
Sort & filterYesNoYes
SetupMay require installation and purchaseUsually built into the OSNone — just open it in a browser

* This table summarizes general tendencies of each approach and does not compare specific products. Conditions vary widely between products and services, so please check each one's terms before use.

FAQ

Can I open Excel files (.xlsx) directly?

Yes. Workbooks with several sheets can be edited by switching tabs, and you can save as either CSV or Excel.

Drag and drop an .xlsx / .xls file and it opens as a table. For workbooks with several sheets, sheet tabs appear above the table — click to switch, double-click to rename.

After editing, save as CSV with “💾 CSV” or as .xlsx with “📗 Excel”. If the file will be opened in Excel, .xlsx is safer because it preserves value types.

Can I add, delete and sort rows and columns?

Yes. Select a row number or column header and click a toolbar button. Any action can be undone with Ctrl+Z.

Click a row number or column header to select it, then use “↑ Insert” to add a row above, or “← Insert” / “Insert →” to add a column to the left or right. To delete, select and press the delete button. To simply add to the end, use “+ Row” or “+ Col”.

To sort, select the column to sort by and press “▲ Asc” or “▼ Desc”. Made a mistake? Use “↶ Undo” (Ctrl+Z); undid too much? Use “↷ Redo” (Ctrl+Y).

How do I find and edit only certain rows?

Use “Filter” to show only the matching rows. You can also save just those rows while the filter is on.

Type into “📥 Filter” in the toolbar and only rows containing that text are shown. The “🔍 Search” box next to it just highlights matches without hiding rows. Use whichever suits your purpose.

When you save with a filter on, you can choose to save only the filtered rows — handy for creating a new CSV containing just the rows that match.

Can I find and replace text in bulk?

Yes. Use “🔁 Replace” (Ctrl+H) to replace everything within a range you choose.

The range can be “Whole table”, “Visible rows only (filter results)”, “Selected columns only” or “Selected rows only” — useful when you want to standardize the notation in just one column.

Replacements can be undone with “↶ Undo” too, so it’s safest to try a narrow range first and then widen it.

Can I add a column calculated from other columns?

With “🧮 Calc column” you can add a new column containing arithmetic or tax calculations, or text that has been joined, extracted or replaced.

Based on existing columns, you can add, subtract, multiply, divide and calculate tax. Results can be rounded, rounded up or rounded down.

Text processing is supported too: join several columns, take a number of characters from the left, right or middle, replace specific text, trim leading/trailing spaces, or convert to upper/lower case.

Can I copy and paste to and from Excel?

Yes. Rows and columns go back and forth with Excel using Ctrl+C / Ctrl+V.

Select rows or columns and use “⧉ Copy” (Ctrl+C) or “✂ Cut” (Ctrl+X); the clipboard then holds them in a format you can paste straight into Excel.

Going the other way, a range copied in Excel can be brought in by selecting the table in this tool and pressing Ctrl+V. (The “📋 Paste” button is for rows or columns copied or cut within this tool.) It’s a handy way to turn an Excel table into a CSV without damaging the values.

Are my edits saved automatically?

No. Everything happens inside your browser, so always export your work as a file with a save button.

Files you open are handled only inside your browser; they are never sent to a server or saved automatically anywhere.

When you’re done, save with “💾 CSV”, “📗 Excel” or “🌐 HTML”. If you try to close the page without saving you’ll see a warning, but if you close it anyway your edits are lost.

Please note

We do not guarantee the accuracy or completeness of the explanations on this page or of the output of this tool. When working with important documents, always check the saved file yourself. Processing may be interrupted depending on your browser or connection, so please keep your own backups of any data you work with. For details, see our Terms of Service and Privacy Policy.