Check the original CSV/TSV in the browser
Files are not sent to DevelopTools servers; they are parsed in the browser using the selected encoding and delimiter. You can inspect tables, row and column counts, and search results without overwriting the original file.
View a large CSV in tabular formConclusion: Check the original file, decoding, parsing, and display separately
First, use 1 MB and 10 MB copies to determine encoding and delimiters, then proceed to the original file if needed. The current viewer decodes the entire file, parses up to 100,000 rows and 200 columns in a worker, and renders 25 to 200 rows at a time.
Whether 50 MB or 100 MB can be handled depends on device memory, column count, long fields, and the browser. Support is not guaranteed; back up the original file and prepare a small sample.
Reproduce the symptom with a minimal sample
id,status,message
1,OK,short text
... 100,000 data rows
Not only row count, but also column count, long fields around 100 KB, and quoted newlines increase memory use and parsing time.
Measure large capacities incrementally
| Test | Account to check | Switching decision |
|---|---|---|
| 1 MB / 10,000 rows | Encoding, delimiter, and quotes | Finalize settings |
| 10 MB / 100,000 rows | Parsing time, memory, and search | Determine whether to continue on the device |
| 50MB / 100MB | Browser responses, reloads, and restrictions | If unstable, switch to a CLI or database. |
| 500,000 rows / 1,000 columns | Exceeds the current limit | Do not use for the purpose of complete display |
Pagination reduces displayed DOM, but the analysis results themselves remain in Memory. Workers are not Streaming either, so this is not a universal solution for huge Files.
Open the original file without converting it
- Do not overwrite the CSV/TSV being investigated; compare the same file in spreadsheet software and the viewer.
- When selecting a file or using drag and drop, you can decode byte sequences as UTF-8 or Shift_JIS. Pasted input is already a browser string, so use the original file when comparing encoding switches.
- If the first row is a header, turn ON "Use first row as headers"; if the data has no header, turn it OFF.
- After loading, check the data row count, column count, detected or selected delimiter, and warnings.
The Viewer retains Fields as strings. It does not convert 00123, 12345678901234567890, 1-2-3, true, or =SUM(A1:A10) into Number, Date, Boolean, or Formula.
Compare automatic delimiter detection and manual specification
| Format and candidates | Actual boundary | Checks when one column or column shifts occur |
|---|---|---|
| Common CSV format | Comma(,) | Do not treat a Comma within a quoted Field as a column boundary. |
| TSV | TAB(U+0009) | Distinguish from Space and the string "\t". |
| Semicolon-delimited | Semicolon(;) | Check dialects by region and output software |
| Pipe-delimited | Pipe(|) | Also check quote rules when a value contains a pipe |
Automatic detection parses candidates from the first 50,000 characters and selects candidates whose column count is stable across multiple rows. It can be incorrect for files whose text fields contain many particular symbols, so if the result looks unnatural, manually select comma, TAB, semicolon, or pipe one at a time. Do not determine the delimiter from the extension or MIME type alone.
Check UTF-8, Shift_JIS, and BOM separately
Mojibake occurs when the same byte sequence is decoded with a different encoding. Select a file, first try UTF-8, and if it is unreadable, switch to Shift_JIS and reload. The current viewer does not auto-detect encoding, so visually check the selected result, Japanese text, symbols, and platform-dependent characters.
| Account to check | Handling in the Viewer | Points to note |
|---|---|---|
| UTF-8 | Decode with TextDecoder("utf-8") | Check representative lines containing emoji and Japanese |
| Shift_JIS | Decode with TextDecoder("shift_jis") | Measure CP932-specific characters against the browser implementation and original file |
| UTF-8 BOM | Remove the leading U+FEFF and do not leave it in the header | Do not display a diagnostic for BOM presence itself on screen. |
| LF / CRLF | Parse both as record delimiters | Does not display diagnostics for mixed states or adopted code |
Adding a BOM does not necessarily fix every environment. Check the destination's import method and encoding requirements, and test with a copy of the original file.
Check the number of columns, double quotes, and line breaks within cells together
id,name,memo
1,Alice,"Tokyo, Japan"
2,Bob,"Line 1
Line 2"
3,Carol,"He said ""Hello"""
Processing CSV only with line.split(",") or text.split("\n") misidentifies quoted commas and quoted newlines as column and record boundaries. The current viewer tracks whether each character is inside or outside quotes and converts "" within fields back to one ". It preserves empty fields and trailing delimiters as column positions and does not trim whitespace arbitrarily.
- The column-count warning is the number of data rows whose column count differs from the maximum. Currently, the applicable row numbers are not displayed.
- Unclosed quotes become warnings. Do not repair based only on displayed results; check quotes in the original file.
- An empty header is displayed as "Column n", and duplicate headers are displayed as names such as "name (2)", but the original data is not rewritten.
- A blank line may remain as a record with one empty field. Determine the meaning of intermediate empty fields, empty records, and missing values according to the input system specification.
Separate automatic conversion by Excel and similar applications from the original CSV
| Original field | Potential display behavior in spreadsheet software | Values to check in the Viewer |
|---|---|---|
| 00123 | 123 | 00123 |
| 12345678901234567890 | Scientific notation or a precision change after the 15th digit | all characters |
| 1-2-3 / JAN1 | Date-like values | original string |
| 1e10 | A number in scientific notation | 1e10 |
| =SUM(A1:A10) | Formula | Text that must not be executed |
If the original string remains in the Viewer, the change may have occurred during Import or display rather than CSV saving. If the original CSV already contains converted values, the Viewer cannot restore the original zeroes or digit count. When importing into Excel, also check Microsoft's Text/CSV Import and Automatic Data Conversion settings.
What you can check with the current CSV and TSV file viewer
| Category | Features | Boundaries to understand |
|---|---|---|
| Input | Select CSV / TSV files, drag and drop, or paste text | Do not perform batch loading of multiple files, URL retrieval, or history restoration. |
| Character encoding | Manually select UTF-8 or Shift_JIS and remove a leading UTF-8 BOM | Automatic encoding detection and diagnostic display for BOM and line-ending codes are unsupported |
| Delimiter | Automatically detect or manually select comma, TAB, semicolon, or pipe | Custom delimiters are not supported. Auto-detection is not perfect. |
| CSV parsing | Process double quotes, quoted commas, escaped quotes, quoted newlines, and empty fields with a custom parser | Not a strict RFC 4180 Validator |
| heading | Allow the setting to use the first row as headers to be turned ON or OFF | Supplement empty headers with column numbers, and assign sequential on-screen identifiers to duplicate headers |
| Table | Line numbers, search across all columns, column header sorting, pagination of 25–200 rows, and adjustable column widths and row heights | Column filtering, a raw-only view, virtual scrolling, and CSV re-export are not supported |
| Diagnostics | Display data row count, visible column count, delimiter, unclosed quotes, and per-row column count mismatches | Individual display of mismatched row numbers, BOM, encoding, and LF/CRLF is not supported. |
| Large capacity | Parsing runs in a Web Worker and retains up to 100,000 data rows and 200 columns for paginated display | This does not use Streaming, Chunk Parse, or Virtualization; excess items are excluded from display |
Do not conclusively identify causes based on features absent from the screen. In particular, the current tool does not support automatic detection of character encodings and delimiters, raw view, detailed line-by-line diagnostics, or arbitrary large-file sizes.
Implementation boundaries for browser processing, large files, and privacy
The file's ArrayBuffer, decoded text, parsed rows, and search keywords are processed in the browser; there is no processing that sends CSV bodies, file names, header names, or cell values through fetch or sendBeacon. Loaded content is not saved to localStorage and is not restored after reload. However, site-wide advertising or analytics traffic and a user's sending of pasted CSV bodies are separate matters. For sensitive data, also check organizational policy and browser extensions.
Parsing is isolated in a Web Worker but reads the entire file into memory. Pagination limits DOM nodes, but this is not virtualization or streaming parsing. Because it stops at 100,000 data rows and 200 columns, it cannot claim that it will always open 100 MB or fully display 500,000 rows. Measure device memory and responsiveness starting with small sizes such as 1 MB and 10 MB.
Display strings that look like formulas and <script> as cell textContent; do not execute them as formulas, HTML, or JavaScript. Separately verify behavior after copying or importing into spreadsheet software.
Troubleshooting when the issue is not resolved
- Also open the original file in a text editor to check where commas, tabs, quotes, and line breaks actually occur.
- Create a copy of only a few rows and check whether it reproduces with the same encoding, delimiter, and header settings.
- For more than 100,000 rows or 200 columns, do not confuse display limits with discrepancies in the source data.
- For raw text differences between two files, use Text Diff; if you only need to know whether files are identical, use hash generation and comparison. This is not a semantic diff by CSV column.
- Use JSON Tree Viewer to inspect JSON hierarchy after converting CSV to another format. The current site does not provide a dedicated CSV-to-JSON conversion tool.
Check primary sources for the specification and software
- RFC Editor: RFC 4180 Common Format and MIME Type for CSV Files
- IANA: text/tab-separated-values
- MDN: FileReader
- MDN: TextDecoder
- Microsoft Support: Opening CSV UTF-8 files correctly in Excel
- Microsoft Support: Keeping leading zeros and large numbers
- Microsoft Support: Data import and analysis options in Excel
RFC 4180 is an Informational RFC that summarizes a common CSV format; it does not mean every real-world CSV uses the same Dialect. Prioritize IANA registration for TSV, MDN for Browser File reading and Decode, and Microsoft Support for Excel-specific automatic conversion.
Summary
- Measure on the device incrementally from 1 MB.
- A Worker reduces UI blocking but does not eliminate Memory usage
- Understand the display limit of up to 100,000 data rows and 200 columns
Keep the original file, then isolate encoding, delimiter, header, quotes, line breaks, column count, and spreadsheet software auto-conversion in order. This avoids fixing CSV and TSV problems based only on guesses.
Example: Reproduce how to inspect large CSV and TSV files
Do not overwrite the original file. First, inspect a copy with a few rows: "id,status,message / 1,OK,short text / ... 100,000 data rows".
Not only row count, but also column count, long fields around 100 KB, and quoted newlines increase memory use and parsing time. After settings are decided, open the original file under the same encoding, delimiter, and header conditions, and compare before and after the problem.
- Load a Copy of the original CSV/TSV by selecting a File or using Drag & Drop.
- Select UTF-8 or Shift_JIS and check whether Japanese characters and symbols display correctly.
- Switch from automatic delimiter detection to manual selection and compare whether the column counts align.
- Check headers, quotes, empty fields, line breaks within cells, and warnings.
- Compare the original file with the spreadsheet software display, determine the cause, then correct it.
Do not overwrite the original file during investigation. Do not assume data was repaired based only on the viewer display; also compare it with the specifications of the input source and destination.
Frequently asked questions
- Are CSV and TSV contents sent to a server?
- CSV content, filenames, headers, cell values, and search keywords are processed in the viewer's browser and are not sent to or stored on DevelopTools servers. Check site-wide advertising and analytics traffic and browser extensions separately.
- Can character encoding and delimiters be determined automatically and completely?
- No. Select UTF-8 or Shift_JIS manually for character encoding, and delimiter auto-detection is also a Heuristic that selects among Comma, TAB, Semicolon, and Pipe based on stable column counts. Check the result manually.
- Can all 500,000 rows or a 100 MB CSV be displayed?
- Cannot guarantee. The current Viewer loads the entire File into Memory and displays up to 100,000 Data rows and 200 columns. It is not Streaming or Virtualization, so try progressively from a small Copy.