How to Type Special Characters on Windows: Alt Codes and Beyond
- ○ 1. How to Type Special Characters on Mac: The Complete Guide
- ● 2. How to Type Special Characters on Windows: Alt Codes and Beyond
- ○ 3. How to Type Special Characters on Linux: Compose Key and Unicode Input
- ○ 4. Input Method Editors (IME): How CJK Text Input Works
- ○ 5. Dead Keys: How to Type Accented Characters Without a Special Keyboard
- ○ 6. Unicode Hex Input on macOS: Type Any Character by Code Point
- ○ 7. Windows Alt Codes: Complete Reference for Special Characters
Windows offers more methods for typing special characters than most users realize. From the decades-old Alt code system inherited from DOS to the modern Win+. emoji panel, Windows has grown a layered toolkit for reaching characters that aren't on your keyboard. Knowing which tool to use in which situation saves real time.
Method 1: Alt Codes
Alt codes are the oldest and most widely known method for typing special characters on Windows. They work by holding Alt, typing a numeric code on the numpad, then releasing Alt.
The Two Alt Code Ranges
Windows has two distinct Alt code systems that are often confused:
Alt+[1–255] (the original): Uses the OEM code page (typically CP437 or CP850), dating back to IBM PC DOS. These produce characters from the legacy code page, not always matching Unicode expectations.
Alt+[0128–0255] (with leading zero): Uses Windows-1252 (Windows Western European encoding). The leading zero signals to Windows to use this encoding instead of CP437.
For most modern use, the Alt+0xxx form with a leading zero is more predictable:
| Character | Name | Alt Code |
|---|---|---|
| — | Em dash | Alt+0151 |
| – | En dash | Alt+0150 |
| © | Copyright | Alt+0169 |
| ® | Registered | Alt+0174 |
| ™ | Trademark | Alt+0153 |
| ° | Degree | Alt+0176 |
| • | Bullet | Alt+0149 |
| … | Ellipsis | Alt+0133 |
| £ | Pound | Alt+0163 |
| € | Euro | Alt+0128 |
| ¥ | Yen | Alt+0165 |
| ¢ | Cent | Alt+0162 |
| ÷ | Division | Alt+0247 |
| × | Multiplication | Alt+0215 |
| ½ | One half | Alt+0189 |
| ¼ | One quarter | Alt+0188 |
| ¾ | Three quarters | Alt+0190 |
| á | a-acute | Alt+0225 |
| é | e-acute | Alt+0233 |
| í | i-acute | Alt+0237 |
| ó | o-acute | Alt+0243 |
| ú | u-acute | Alt+0250 |
| ñ | n-tilde | Alt+0241 |
| ü | u-umlaut | Alt+0252 |
| ä | a-umlaut | Alt+0228 |
| ö | o-umlaut | Alt+0246 |
| « | Left guillemet | Alt+0171 |
| » | Right guillemet | Alt+0187 |
| § | Section | Alt+0167 |
| ¶ | Paragraph | Alt+0182 |
| † | Dagger | Alt+0134 |
| ‡ | Double dagger | Alt+0135 |
| ¡ | Inverted exclamation | Alt+0161 |
| ¿ | Inverted question | Alt+0191 |
Requirements for Alt Codes
Alt codes have strict requirements that catch many users off guard:
- You must use the numeric keypad (Numpad), not the number row at the top of the keyboard
- Num Lock must be ON — press Num Lock if the numbers aren't working
- Hold Alt the entire time you type the digits
- Release Alt to produce the character
On laptops without a dedicated numpad, look for the embedded numpad (usually accessed via Fn+key). Some laptops label these keys with small numbers in a different color. If your laptop has no numpad at all, use one of the other methods below.
Legacy CP437 Alt Codes (No Leading Zero)
The original Alt codes without a leading zero access different characters — many are box-drawing characters used in old DOS interfaces:
| Character | Name | Alt Code |
|---|---|---|
| ☺ | White smiley | Alt+1 |
| ☻ | Black smiley | Alt+2 |
| ♥ | Heart | Alt+3 |
| ♦ | Diamond | Alt+4 |
| ♣ | Club | Alt+5 |
| ♠ | Spade | Alt+6 |
| • | Bullet | Alt+7 |
| ○ | Circle | Alt+9 |
| ♂ | Male | Alt+11 |
| ♀ | Female | Alt+12 |
| ♪ | Eighth note | Alt+13 |
| ☼ | Sun | Alt+15 |
| ► | Right arrow | Alt+16 |
| ◄ | Left arrow | Alt+17 |
| ↕ | Up-down arrow | Alt+18 |
| ‼ | Double exclamation | Alt+19 |
Method 2: Win+. Emoji Panel
Windows 10 and 11 include a built-in emoji panel that's far faster than hunting through Character Map. It includes not just emoji but also kaomoji, symbols, and GIFs.
Opening the Emoji Panel
Press Windows key + . (period) or Windows key + ; (semicolon). The panel opens near your cursor.
Navigating the Panel
The emoji panel has four tabs at the top: - Emoji — full emoji library, searchable - Kaomoji — text-art faces like (◕‿◕) and ¯_(ツ)_/¯ - Symbols — punctuation, currency, math, and more - GIFs — animated GIFs (requires internet)
Symbols Tab
The Symbols tab in the emoji panel covers many special characters without requiring you to remember codes:
- Punctuation: em dash, en dash, ellipsis, guillemets, curly quotes
- Currency: €, £, ¥, ₿, ₹, ₩
- Latin: accented characters
- Math: ±, ×, ÷, √, π, ∑, ∞
- Arrows: →, ←, ↑, ↓, ↔
Click any character to insert it at the cursor. The panel remembers recently used characters at the top.
Searching
Type in the search bar to find emoji by description. "coffee," "fire," "check mark" all work. The search also covers symbol names in the Symbols tab.
Method 3: Character Map (charmap.exe)
Character Map is the built-in Windows utility for browsing and copying any Unicode character. It's been part of Windows since Windows 3.1, though the interface hasn't changed much.
Opening Character Map
- Press Win+R, type
charmap, press Enter - Or search "Character Map" in the Start menu
Using Character Map
- Select a font from the dropdown (most Unicode characters are in fonts like Segoe UI, Arial Unicode MS, or Code2000)
- Browse the grid or use the search box at the bottom ("Search for:")
- Double-click a character to add it to the "Characters to copy" box
- Click Copy, then paste into your document
Advanced View
Check the "Advanced view" checkbox at the bottom to unlock:
- Character set: Unicode, Windows, DOS/OEM
- Group by: Unicode subrange (Latin, Greek, Arrows, etc.) or Unicode block
- Search for: type a character name to jump to it (e.g., "em dash")
- Go to Unicode: type a code point hex value (e.g., 2014) to jump directly
Finding the Keystroke
When you click a character in Character Map, the status bar at the bottom shows its keystroke if it has one. For common characters it also shows the Alt code. This is a useful way to learn shortcuts you didn't know about.
Method 4: Unicode Hex Input via Registry
Windows supports typing Unicode characters by hex code point in some applications, but it requires a registry modification to enable.
Enabling Unicode Hex Input
- Open Registry Editor (Win+R, type
regedit) - Navigate to:
HKEY_CURRENT_USER\Control Panel\Input Method - Right-click the right pane, choose New > String Value
- Name it
EnableHexNumpad - Set its value to
1 - Restart Windows
Using Unicode Hex Input
After enabling and restarting:
1. Hold Alt
2. Press + on the numpad (this activates Unicode mode)
3. Type the hex code point (e.g., 2014 for em dash)
4. Release Alt
This works in many applications including Notepad, WordPad, and Microsoft Office. It does not work in all apps — browser text fields, for example, may not support it.
Comparison with Alt Codes
| Feature | Alt Codes | Unicode Hex Input |
|---|---|---|
| Setup required | None | Registry edit + restart |
| Character range | U+0000–U+00FF (limited) | U+0000–U+FFFF |
| Numpad required | Yes | Yes |
| Works everywhere | Most apps | Fewer apps |
| Memorability | Numeric codes only | Hex codes (findable) |
Find any character's hex code with our Unicode Lookup tool.
Method 5: Alt+X in Microsoft Office
Microsoft Word and WordPad support a special shortcut: type a Unicode code point in hex, then press Alt+X to convert it to the character in place.
How Alt+X Works
- Type the hex code point directly in your document (e.g.,
2014) - Immediately press Alt+X
- The
2014is replaced by — (em dash)
You can also reverse the process: place your cursor after any character and press Alt+X to see its code point.
This only works in Word, WordPad, and a handful of other Microsoft applications. It doesn't work in browsers, Notepad, or most third-party apps.
Common Alt+X Codes
| Code | Character | Name |
|---|---|---|
| 2014 | — | Em dash |
| 2013 | – | En dash |
| 00B0 | ° | Degree |
| 00A9 | © | Copyright |
| 00AE | ® | Registered |
| 2122 | ™ | Trademark |
| 00B1 | ± | Plus-minus |
| 2260 | ≠ | Not equal |
| 221E | ∞ | Infinity |
| 03C0 | π | Pi |
| 2665 | ♥ | Heart suit |
| 2605 | ★ | Black star |
Method 6: WinCompose (Third-Party)
WinCompose brings the Linux Compose key concept to Windows, letting you type special characters with intuitive multi-key sequences. It's free, open source, and doesn't require administrator access.
Installing WinCompose
Download from github.com/samhocevar/wincompose or install via winget install wincompose.
Using WinCompose
After installation, WinCompose runs in the system tray. You configure a Compose key (by default, right Alt). Then:
- Compose, -, - → — (em dash)
- Compose, <, < → « (left guillemet)
- Compose, >, > → » (right guillemet)
- Compose, o, c → © (copyright)
- Compose, o, r → ® (registered)
- Compose, t, m → ™ (trademark)
- Compose, 1, 2 → ½ (one half)
- Compose, e, ' → é (e-acute)
- Compose, n, ~ → ñ (n-tilde)
- Compose, u, :: → ü (u-umlaut)
- Compose, +, - → ± (plus-minus)
- Compose, =, = → ≡ (identical to)
WinCompose uses the same .XCompose file format as Linux, so you can import or share configurations across platforms.
Choosing the Right Method
| Situation | Best Method |
|---|---|
| Quick em dash or copyright | Alt code (Alt+0151, Alt+0169) |
| Emoji or emoji-adjacent symbols | Win+. emoji panel |
| Browsing all Unicode characters | Character Map |
| Known code point, in Word | Alt+X |
| No numpad available | Win+. or Character Map |
| Typing many different accented chars | WinCompose |
| Developer workflow | Unicode hex input (registry) |
Troubleshooting Alt Codes
Number row not working: Must use numpad, not the top row numbers.
Num Lock warning: If Alt codes produce movement (cursor moving instead of numbers), Num Lock is off. Press Num Lock and try again.
Getting wrong character: Check whether you're using a leading zero (Alt+0xxx uses Windows-1252; without the zero uses CP437). The results are completely different.
Laptop without numpad: Use Character Map, Win+. emoji panel, or install WinCompose. Many laptop keyboards have a hidden numpad accessed via a Fn key — look for small numbers printed on letter keys (often J=1, K=2, L=3, etc.).
Character appears as a box: The current font doesn't include that character. Switch to a Unicode-rich font like Segoe UI, Arial Unicode MS, or Noto Sans.
Next in Series: Linux users have arguably the most powerful built-in system of all — the Compose key and Ctrl+Shift+U Unicode input. Read How to Type Special Characters on Linux to see how it works.