Foundations
ASCII Tables Explained: Grid, Simple, and Unicode Styles
Written and reviewed by the md2text maintainer. Parser-specific guidance is checked against the automated regression suite.
ASCII tables are plain-text tables built from characters instead of HTML, CSS, or Markdown rendering. They are useful because they survive copy and paste. A table that looks right in a terminal, source comment, email, log file, or support ticket can be read without a browser extension or a Markdown preview.
The phrase “ASCII table” is often used loosely. Some tables use only true ASCII characters such as +, -, and |. Others use Unicode box-drawing characters such as ┌, ─, and │. Both styles are plain text, but they behave differently depending on the destination.
Grid style
Grid style is the classic database-table look:
+---------+--------+----------+
| Package | Status | Size |
+---------+--------+----------+
| core | ready | 183 KB |
+---------+--------+----------+
| docs | review | 42 KB |
+---------+--------+----------+
Use grid style when you need strong separation between rows and columns. It is especially good for:
| Use case | Why grid works |
|---|---|
| README examples | Clear boundaries make copied snippets easier to scan |
| Database output | The style matches familiar CLI tools |
| Support tickets | Each row remains distinct after copy and paste |
| Incident notes | Reviewers can compare values quickly |
The main tradeoff is vertical space. A full grid table uses separator rows between body rows, so long tables become tall. That is usually acceptable for small compatibility matrices and status summaries, but it may be too heavy for very large datasets.
Simple style
Simple style keeps the table compact:
Package Status Size
------- ------ ------
core ready 183 KB
docs review 42 KB
This style is useful when the table is short, the columns are obvious, and the destination has limited space. It is a good fit for email replies, short changelog entries, and compact command examples.
The tradeoff is that there are fewer visual boundaries. If a cell contains a long sentence, simple style can become harder to read than grid style. For that reason, simple output works best when each cell is a label, number, status, or short phrase.
Unicode box-drawing style
Unicode box-drawing tables look polished in modern terminals:
┌─────────┬────────┬──────────┐
│ Package │ Status │ Size │
├─────────┼────────┼──────────┤
│ core │ ready │ 183 KB │
├─────────┼────────┼──────────┤
│ docs │ review │ 42 KB │
└─────────┴────────┴──────────┘
This style is still plain text, but it depends on Unicode support. Use it when your destination is a modern terminal, internal documentation site, or editor that uses a font with good box-drawing glyphs.
Avoid Unicode output when the text might pass through older systems, SMS-like tools, or email clients that replace box-drawing characters. In those cases, ASCII grid is safer.
Why monospaced fonts matter
Plain-text tables rely on spaces. If the destination uses a proportional font, narrow characters such as i and wide characters such as W take different visual widths. The table may still contain the right spaces, but the columns can look uneven.
For reliable display, paste the output into a monospaced field or wrap it in a code block when the destination supports one:
```text
+------+--------+
| Name | Status |
+------+--------+
| API | Ready |
+------+--------+
```
If you are writing a README, code fences are usually the best container. If you are writing email, choose a plain-text or monospaced formatting option when available.
How column width is calculated
A converter should size each column based on the visible content, not the number of bytes in the string. This matters for:
| Content type | Why width handling matters |
|---|---|
| CJK text | Some characters are visually wider than ASCII |
| Emoji-like symbols | Display width can differ from character count |
| Code spans | Backticks should not always count as visible content |
| Links | The readable label and URL may both affect width |
Markdown Table to Text uses visible string width so output is more reliable in monospaced contexts. No converter can control every destination font, but width-aware output is a better starting point than counting raw string length.
Choosing the right style
Use this quick rule:
| Situation | Recommended style |
|---|---|
| You need maximum compatibility | ASCII grid |
| You need compact output | Simple text |
| You need polished terminal output | Unicode box |
| The table has many long cells | Grid, or rewrite the content |
| The table will be emailed | Simple or ASCII grid |
For most documentation tasks, start with ASCII grid. It is not the shortest format, but it is predictable and widely readable.
Final thought
ASCII and Unicode tables are not replacements for rich tables on a website. They are a practical fallback for environments where plain text is the most dependable format. Choose the simplest style that remains readable after copy and paste, and keep the source Markdown table clean so the converted version stays clean too.
Try the table examples from this guide
Open an allowlisted example in the converter or copy the source and output locally. The Markdown text is not placed in the URL.
ASCII grid
Example key: ascii-grid-use-cases
Markdown source
| Use case | Why grid works |
|---|---|
| README examples | Clear boundaries make copied snippets easier to scan |
| Database output | The style matches familiar CLI tools |
| Support tickets | Each row remains distinct after copy and paste |
Text output
+-----------------+------------------------------------------------------+
| Use case | Why grid works |
+-----------------+------------------------------------------------------+
| README examples | Clear boundaries make copied snippets easier to scan |
+-----------------+------------------------------------------------------+
| Database output | The style matches familiar CLI tools |
+-----------------+------------------------------------------------------+
| Support tickets | Each row remains distinct after copy and paste |
+-----------------+------------------------------------------------------+
Convert your own table
Paste a Markdown table into the converter and choose ASCII grid, Unicode box, or Simple text output. Conversion runs locally in your browser.
Convert a Markdown table