A CSV file looks simple: values separated by commas. In practice, "CSV" covers files separated by semicolons or tabs, values wrapped in quotes, line breaks inside cells and several text encodings, and the same file can look right in one program and wrong in another. A viewer is the quickest way to find out what a file really contains. This guide shows how to use our CSV Viewer, explains the rules that decide whether a file reads correctly, and documents the cases where the viewer and your data disagree, which we found by testing files that were deliberately awkward.
What a CSV file is, and the rules that matter
CSV (comma-separated values) is plain text. Each line is a row. Within a row, a delimiter character separates the fields. There is no single enforced standard; the closest is RFC 4180, which describes the common conventions, and many files deviate from it. The rules that matter for reading a file correctly are these:
- The delimiter is usually a comma, but spreadsheets in many European locales write semicolons, because the comma is the decimal separator there (
1,25). Tab-separated files are also common. - Quoting. A field that contains the delimiter, a double quote or a line break is wrapped in double quotes. A quote inside a quoted field is written twice:
"He said ""wow"""is the textHe said "wow". - Line breaks end a row, except inside a quoted field, where they belong to the cell.
- Encoding. The file is just bytes; the program reading it has to know how to turn them into characters, and the common choices are UTF-8 and older single-byte code pages.
- The header row. The first line is often column names, but nothing in the file says so.
How to view a CSV file, step by step
- Add the data. Click Choose File under Upload a CSV file, or paste into ...or paste CSV data. Choosing a file only loads its text into the box; the table does not appear until the next step.
- Check the settings. Delimiter offers Auto-detect, Comma (,), Semicolon (;) and Tab. First row is header is ticked by default; untick it if your file has no header.
- Click View as Table. The line above the table shows the row and column counts.
- Sort and filter. Click a column header to sort by it (click again to reverse). Type in Filter rows... to keep only the rows where any cell contains your text, ignoring case.
- Click Download CSV if you want the displayed rows back as a file named
csv-viewer-export.csv.

The data in the screenshot has a quoted comma ("Nguyen, Linh"), a doubled quote inside a quoted field ("Gift wrap; ""rush"" order"), an empty field and a thousands separator inside a quoted number ("1,980.00"). All were read as intended: Nguyen, Linh stayed in one cell and the notes cell shows Gift wrap; "rush" order. A line break inside quotes also works: a cell written as "line one newline line two" stays one cell with two lines.
Delimiters and auto-detect
With Auto-detect, the viewer counts commas, semicolons and tabs in the first line only and uses the one that occurs most. When counts tie, the comma wins. That works for ordinary files: a semicolon file with name;price;qty in its first line is detected, and Apfel;1,25;10 is split into three cells, keeping the decimal comma intact.
It can go wrong in two ways. First, it counts delimiters inside quotes too. A header such as "Last, First, Middle";Age has two commas and one semicolon, so the viewer picks the comma and shows a single column. The fix is to choose the delimiter yourself in the dropdown. Second, only three delimiters exist in the list. A pipe-separated file (a|b|c) shows as one column with no way to split it. Replace the pipes with commas or tabs in a text editor and view it again. Forcing the wrong delimiter also gives odd results: a semicolon file forced to Comma splits Apfel;1,25;10 into Apfel;1 and 25;10, with the extra column labelled Column 2.
Quotes: the one that corrupts a row
Quote handling follows the rules above, but with one strictness issue that affects real files. A double quote anywhere in a field starts "quoted mode", not only at the very start. That matters for data such as measurements in inches. This file is perfectly sensible to a human:
part,size,qty
pipe,5" long,3
nut,M8,10
bolt,M6,20

The viewer shows 1 row. The quote after the 5 opened a quoted section that never closes, so everything after it, including the line breaks and the other two items, ended up inside a single cell. There is no warning. The same thing happens with an unterminated quote like 1,"oops: the rest of the file becomes one cell. Whenever the row count is far lower than you expect, look for a stray quote. Strict CSV writers would have written "5"" long"; if you can, fix the source. Otherwise replace the stray quote in a text editor (for example with the word "inch") before viewing.
Want to look at your CSV as a table?
Open the CSV ViewerEncoding: when accents turn into question marks
Uploaded files are read as text by the browser, which expects UTF-8 and also recognises a byte order mark. We loaded four versions of the same two-row file with the names José, Zürich, Müller and Köln:
- UTF-8: displayed correctly.
- UTF-8 with a byte order mark (BOM): displayed correctly, and the BOM did not end up in the first header.
- UTF-16 (little-endian) with a BOM: displayed correctly.
- Windows-1252 / Latin-1 (the default "CSV" export of many older programs): accented letters were replaced by the
�character, as inJos�andM�ller.
The last case is the common one. The bytes for é in Windows-1252 are not valid UTF-8, so the original information is already gone once the file is loaded here. Re-save the file as UTF-8 and try again: in Excel, use Save As and choose CSV UTF-8; in a text editor, look for the encoding option when saving. Pasting text instead of uploading avoids the problem, because the characters have already been decoded by the program you copied from.
Uneven rows, blank lines and the header
- Short and long rows are padded. The table is as wide as the widest row. For
a,b,cfollowed by rows of two, four and one values, the viewer showed four columns, nameda,b,cand Column 4, and filled the gaps with blanks. Nothing is dropped, but a column that looks misaligned usually means an unquoted delimiter inside a field. - Blank lines are skipped, including at the end of the file. A row with a single empty cell in a one-column file is skipped too.
- No header row. Untick First row is header and the columns are labelled Column 1, Column 2 and so on, with the first line shown as data.
- Duplicate header names are allowed and shown as they are.
- Leading zeros and long codes are untouched.
01234and0044 20 7946display exactly as written, because everything is kept as text. This is a reason to look at a file here before opening it in a spreadsheet that may convert such values.
Sorting: what to trust and what not
Clicking a header sorts that column. If both values being compared start with a number, they are compared as numbers; otherwise they are compared as text with natural ordering (so item2 sorts before item10) and case ignored. The number test reads as many leading digits as it can, and that has consequences. We sorted this data:
product,units,revenue,date
Widget,9,"1,200.50",2026-03-01
Gadget,10,950,2026-01-15
Gizmo,100,"2,000",2026-02-20
Thing,2,n/a,2026-03-09
Alpha,10,-5.5,2025-12-31
- Plain numbers sort correctly. The units column ascending gave Thing (2), Widget (9), Gadget (10), Alpha (10), Gizmo (100).
- Numbers with thousands separators sort wrongly.
"1,200.50"is read as 1 and"2,000"as 2, so the revenue column ascending gave Alpha (-5.5), Widget (1,200.50), Gizmo (2,000), Gadget (950), Thing (n/a). Widget and Gizmo land below Gadget. - ISO dates sort wrongly across months. A value like
2026-03-01is read as the number 2026, so only the year is compared. Ascending by date gave Alpha (2025-12-31) first, which is right, and then Widget, Gadget, Gizmo, Thing, which are all 2026 and stayed in their original order instead of January, February, March.
So sort only on plain numeric columns, and treat date and formatted-number sorting as unreliable until you have verified it. To order dates properly, convert them in the source to a format where plain text order is correct and each value is compared whole, or sort in a spreadsheet.
Filtering and exporting
The filter matches your text anywhere in any cell, case-insensitively, and it matches across the original text of the cell: filtering for 1,2 found the row containing 1,200.50. The row count updates to the number of rows displayed.
Download CSV exports what is on screen: the current filter and sort order apply, and the header row is included. We found some details worth knowing:
- The file always uses commas, even if you loaded a semicolon file.
Apfel;1,25;10was exported asApfel,"1,25",10, with the decimal comma quoted so it stays one cell. - If First row is header was unticked, the export begins with a generated row
Column 1,Column 2,Column 3, which was not in your original file. - Fields with commas, quotes, semicolons or line breaks are quoted, and the file has no trailing newline and no BOM.
How large a file can it handle?
The tool builds the whole table on the page, so speed depends on row count and your computer. In our test browser, 10,000 rows (about 360 KB) took about 2 seconds to display, and sorting that table took about 3.5 seconds; 50,000 rows (about 2 MB) took about 27 seconds to display and sorting took about 17. The code itself has no limit, but for files beyond a few tens of thousands of rows, a spreadsheet or a command-line tool is the better choice.
Is it safe to open a private CSV here?
We loaded files and pasted data while watching the network, and there were no requests after the page had loaded: files are read locally and the table is built in your browser. The page loads styling from a public CDN when it opens and may show third-party advertising; our code does not send your data to either. For files with customer details, financial records or other sensitive data, the safest habit is to remove what you do not need first, or to use a tool on your own machine.
Quick answers
Why do I see one giant column? The delimiter was not detected or is not one of the three supported. Pick it in the dropdown, or convert pipes and other separators first.
Why does my file show fewer rows than expected? Check for a stray double quote, which merges rows into one cell, and for blank lines, which are skipped.
Can I edit cells? No. The viewer is read-only; you can sort, filter and export.
Can I turn the data into JSON or Excel? The JSON to Excel / CSV Converter goes from JSON to a table and CSV or XLSX. To see what changed between two exports, use Text Compare.
Want to look at your CSV as a table?
Open the CSV Viewer