Short answer: They’re three ways to reach the same character, not three different characters. An Alt code is a Windows keypad shortcut; a Unicode code point (like U+20AC) is the character’s universal ID; an HTML entity (like €) is how you write it in web code. All three can produce € — you pick the one that fits where you’re typing.
Want all three methods for any symbol at once? The Alt Code Finder shows the Windows Alt code, Mac shortcut, Word method and HTML entity side by side — search by name.
If you’ve ever wondered why € does nothing in Word, or why Alt + 0128 and Alt + 8364 both give €, this is the guide. The confusion clears up the moment you see that all of these point back to one thing: the character’s Unicode code point.
They all point to the same character
Every character has one permanent Unicode identity. The euro sign is U+20AC — hex 20AC, which is 8364 in decimal. Alt codes, HTML entities and the rest are just different doors into the same room:
- U+20AC — the code point (the identity)
- Alt + 8364 — enter that code point from the Windows keypad
€— the same number as an HTML entity€— a friendly name for the same code point20AC+ Alt + X — the hex, entered in Word
Once you see the shared number, the three methods stop competing and start making sense.

Alt codes: a Windows keypad shortcut
An Alt code means holding Alt and typing a number on the numeric keypad (Num Lock on). It’s Windows-only and needs a numpad. There are actually three kinds, and mixing them up is the #1 source of “wrong character” errors:
- No leading zero (Alt + 1 … 255) uses the old IBM Code Page 437 — the DOS character set. This is where the classic symbols live: Alt + 3 = ♥, Alt + 13 = ♪. Most of this range is box-drawing and legacy characters.
- Leading zero (Alt + 0128 … 0255) uses Windows-1252, the modern Western-European set: accented letters, €, ™, ©, the em dash, curly quotes. So Alt + 0128 = €, Alt + 0169 = ©.
- 256 and above (Alt + 8364) is treated by Unicode-aware apps as the decimal Unicode code point — Alt + 8364 = € because 8364 is U+20AC in decimal.
The leading zero is the signal. Alt + 0151 gives the em dash — while Alt + 151 (no zero) gives a box-drawing character. When in doubt, use the leading-zero form for modern symbols. (If a code returns the wrong character or nothing, start with why Alt codes don’t work.)
Unicode: the code point itself
The Unicode code point is the character’s real identity — written U+ plus hex, like U+20AC. It isn’t tied to Windows or the web; it’s the reference every method ultimately uses. How you enter a code point depends on the platform:
- Microsoft Word / Office: type the hex and press Alt + X —
20ACthen Alt + X becomes €. This reaches any of Unicode’s characters, far beyond the Alt-code range. - Mac: with the Unicode Hex Input source on, hold Option and type the four-digit hex (Option + 20AC), or use the Character Viewer. (Macs have no Alt codes.)
- Linux: press Ctrl + Shift + U, type the hex, then Enter.
- ChromeOS: the same Ctrl + Shift + U method.
When you want to name a character unambiguously — in documentation, a bug report, or across platforms — you cite the code point (U+20AC), because it’s the one label that never changes.
HTML entities: for web pages only
An HTML entity is how you write a character in HTML source so it displays reliably. Entities come in three forms, all resolving to the same code point:
- Named:
€— a memorable alias (only some characters have one). - Decimal:
€— an ampersand, hash, the decimal code point, semicolon. - Hex:
€— the same, with anxand the hex value.
The catch: entities only work in HTML. Type € into Word, a text message or a filename and you’ll see the literal letters “€”, because nothing there interprets HTML. Use entities on web pages and in HTML email; use Alt codes or the actual character everywhere else.
All roads to €
| Method | You type | Where it works |
|---|---|---|
| Windows-1252 Alt code | Alt + 0128 | Windows, most apps (numpad) |
| Unicode-decimal Alt code | Alt + 8364 | Windows, Unicode-aware apps (numpad) |
| Word hex + Alt + X | 20AC then Alt + X | Microsoft Word / Office |
| Mac Unicode Hex Input | Option + 20AC | macOS (that input source on) |
| Mac layout shortcut | Option + Shift + 2 | macOS, US layout |
| Linux / ChromeOS | Ctrl + Shift + U, 20AC | Linux, ChromeOS |
| HTML named entity | € | web pages / HTML email |
| HTML decimal entity | € | web pages / HTML email |
| HTML hex entity | € | web pages / HTML email |
| Unicode code point | U+20AC | reference / documentation |
Notice 8364 shows up in both the Unicode-decimal Alt code and the decimal HTML entity — same number, because both use the Unicode code point. The 0128 in the Windows-1252 Alt code is a different number: the character’s slot in that one code page, which happens to be where € landed.
Which should you use?
- A Windows app (email, chat, a form): an Alt code —
Alt + 0128for €,Alt + 0169for ©. - Microsoft Word: the hex + Alt + X method (most reliable), or an Alt code.
- A web page or HTML email: an HTML entity —
€or€. - A Mac: an Option shortcut, Unicode Hex Input, or the Character Viewer — never an Alt code.
- Naming a character to someone else: the Unicode code point, U+20AC.
- Any platform, quickly: just copy the actual character — it carries its own identity everywhere.
Common mix-ups
- “
€shows as text in my document.” Entities are HTML-only. In Word use20AC+ Alt + X orAlt + 0128. - “
Alt + 0128doesn’t work on my Mac.” Alt codes are Windows-only. On a Mac useOption + Shift + 2or the Character Viewer. - “
Alt + 128gives the wrong symbol.” Without the leading zero you’re on the old CP437 page. Add the zero —Alt + 0128— for the Windows-1252 character. - “
Alt + 8364works in Word but not Notepad.” Unicode-decimal Alt codes need a Unicode-aware app; older/basic apps may not support them. UseAlt + 0128there, or copy the character. - “Is the HTML number the same as the Alt code?” Often yes — both can be the decimal code point (8364 for €). But a Windows-1252 Alt code (0128) is the code-page slot, not the Unicode value, so those two numbers differ.
Frequently asked questions
What is the difference between an Alt code and a Unicode code point?
A Unicode code point (like U+20AC) is the character’s universal identity. An Alt code is a Windows-only way to enter a character from the numeric keypad. They’re often related — the Unicode-decimal Alt code (Alt + 8364) uses the decimal code point — but a Windows-1252 Alt code (Alt + 0128) uses a code-page position instead, so the numbers can differ.
Why doesn’t € work in Word?
HTML entities like € only work in HTML — web pages and HTML email. Word isn’t an HTML editor, so it shows the literal text. In Word, type 20AC and press Alt + X, or use the Alt code Alt + 0128.
Why does Alt + 0128 give € but Alt + 128 gives something else?
The leading zero tells Windows to use the modern Windows-1252 character set, where € sits at position 128. Without the zero, Windows uses the old IBM Code Page 437, where 128 is a different (legacy) character. For modern symbols, always use the leading-zero form.
Do Alt codes work on a Mac?
No — Alt codes are a Windows feature that needs the numeric keypad. On a Mac you use Option-key shortcuts (Option + Shift + 2 for €), the Unicode Hex Input source (Option + the hex), or the Character Viewer.
Is the HTML entity number the same as the Alt code number?
Sometimes. The decimal HTML entity (€) and the Unicode-decimal Alt code (Alt + 8364) use the same number — the decimal code point. But the Windows-1252 Alt code (Alt + 0128) is a different number, because it refers to the character’s slot in that code page, not its Unicode value.
Which method should I use to type a symbol?
Match the method to where you’re typing: an Alt code in a Windows app, hex + Alt + X in Word, an HTML entity on a web page, and an Option shortcut or the Character Viewer on a Mac. To name a character precisely for someone else, cite its Unicode code point (U+20AC). Or just copy the character — it works anywhere.
Written by Igor R.. Tested on Windows 11, macOS, Microsoft Word and major browsers. Symbol code points follow the Unicode Standard. Last updated July 2026.