Utilities
Copy/paste common typographic symbols fast: guillemets « », en dash – , em dash —, ellipsis …, plus non-breaking space.
Characters & shortcuts
| Character | Name | Alt code | Unicode | Copy |
|---|---|---|---|---|
| « | left guillemet | Alt + 0171 | U+00AB | |
| » | right guillemet | Alt + 0187 | U+00BB | |
| – | en dash | Alt + 0150 | U+2013 | |
| — | em dash | Alt + 0151 | U+2014 | |
| … | ellipsis | Alt + 0133 | U+2026 | |
| non-breaking space | Alt + 0160 | U+00A0 |
Reference
This is a short table with an outsized effect on how finished text looks. It covers the guillemets used for quotation across much of Europe, the en and em dashes, the ellipsis, and — most usefully — two invisible characters that solve layout problems nothing else can.
The non-breaking space is the workhorse. It looks exactly like an ordinary space and behaves like one in every way except that no line break may occur at it. That makes it the correct fix for the small typographic embarrassments that appear in narrow columns and on mobile: a number separated from its unit across a line break, a name broken after an initial, a figure reference split from its number. Writing 10 kg, Dr. Smith, Figure 3 and 25 °C with non-breaking spaces keeps each pair together at any column width. In HTML the entity is the familiar , but the literal character works identically and survives copy and paste, which the entity does not.
The narrow no-break space is the specialist version, narrower than a normal space and equally unbreakable. French typography needs it before the high punctuation marks — the colon, semicolon, question mark and exclamation mark all take a thin space before them in French, and a full space looks too wide. It is also used inside guillemets and as a digit group separator in several European conventions, where 1 000 000 is written with thin spaces rather than commas.
Because both of these characters are invisible, they cause a particular class of confusion. Text that looks identical can fail an equality check because one copy contains a non-breaking space where the other has a normal one. This happens constantly with text copied from web pages, PDFs and word processors into forms, spreadsheets and databases, and it is a common cause of lookups that fail for no visible reason. If a value will not match and looks correct, checking for U+00A0 is a good first move. Most spreadsheet software has a clean or substitute function for exactly this.
The guillemets « and » are the standard quotation marks in French, Russian, Spanish, Italian, Portuguese and several other languages, though the spacing conventions differ — French puts spaces inside the marks, Russian does not. On Windows, hold Alt with Num Lock on: « is Alt+0171, » is Alt+0187, – is Alt+0150, — is Alt+0151, … is Alt+0133 and the non-breaking space is Alt+0160. On macOS, Option+backslash gives «, Shift+Option+backslash gives », and Option+space gives the non-breaking space. On Linux, Compose then < then < gives « and Compose then space then space gives the non-breaking space. In Word, Ctrl+Shift+space inserts a non-breaking space directly.
FAQ
Hold Alt and type the number on the numpad (Num Lock on), then release Alt. Examples: en dash Alt+0150, em dash Alt+0151, ellipsis Alt+0133.
Common shortcuts: en dash (Option + -), em dash (Option + Shift + -), ellipsis (Option + ;). Guillemets vary by layout—copy from this table if needed.
Yes—click Copy in the table and paste anywhere. No installation needed.
Non-breaking spaces keep items together (e.g., numbers + units, initials) and prevent line breaks.
It keeps two words or a number and its unit on the same line: 10 kg, Figure 3, Dr. Smith. It looks like a normal space but no line break can occur at it.
It often contains a non-breaking space (U+00A0) where the other copy has a normal one. Text copied from web pages, PDFs and word processors frequently carries them.
French typography uses it before the colon, semicolon, question mark and exclamation mark, and inside guillemets. It also serves as a digit group separator in several European conventions.
Both render identically in HTML. The literal character survives copy and paste into non-HTML contexts, while the entity does not, so it is often the more portable choice.