Guide

Windows alt codes, and what to do when they will not work

An alt code types a character by holding the Alt key and entering a number on the numeric keypad, then releasing Alt. Alt 0176 gives the degree sign, Alt 8594 gives a rightwards arrow. It only works with the numeric keypad, never the number row above the letters.

Last checked 2026-08-05.

How an alt code actually works

When you hold Alt and type digits on the numeric keypad, Windows collects those digits and, on release of the Alt key, inserts the character with that number. Which numbering it uses depends on how you start the sequence, and this is the single detail that trips people up.

A code without a leading zero, such as Alt 26, is read against the old OEM code page your system is set to, usually code page 437. A code with a leading zero, such as Alt 0176, is read against the Windows ANSI code page, usually 1252. A code above 255 with no leading zero, such as Alt 8594, is read as a Unicode code point in decimal. Three numbering systems, one keyboard shortcut, which is why the same character can have two or three different alt codes floating around the web.

The alt codes people look up most

Common Windows alt codes, with the Unicode code point each one produces
CharacterNameAlt codeUnicode
°Degree signAlt 0176 or Alt 248U+00B0
♥Black heart suitAlt 3U+2665
✓Check markAlt 10003U+2713
★Black starAlt 9733U+2605
→Rightwards arrowAlt 26 or Alt 8594U+2192
←Leftwards arrowAlt 27 or Alt 8592U+2190
€Euro signAlt 0128U+20AC
£Pound signAlt 0163U+00A3
©Copyright signAlt 0169U+00A9
®Registered signAlt 0174U+00AE
™Trade mark signAlt 0153U+2122
±Plus-minus signAlt 0177U+00B1
×Multiplication signAlt 0215U+00D7
÷Division signAlt 0247U+00F7
…Horizontal ellipsisAlt 0133U+2026
—Em dashAlt 0151U+2014
–En dashAlt 0150U+2013
•BulletAlt 0149U+2022

Why Alt 26 and Alt 8594 both give an arrow

Alt 26 is a code page 437 escape: position 26 in the original IBM PC character set happens to be a rightwards arrow. Alt 8594 is the decimal Unicode code point of U+2192, the modern rightwards arrow. In a plain text editor both put an arrow on screen and both are the same character once the text is stored as Unicode, but the short code only works while your application still honours the OEM code page. In modern apps that ignore it, Alt 26 does nothing and Alt 8594 still works.

If a code you found online does nothing, try it again with the Unicode number instead of the short legacy number. If that also fails, the application is intercepting the Alt key for its own menu shortcuts, which is common in browsers and in Office ribbons.

Alt codes on a laptop with no numeric keypad

Alt codes require the numeric keypad, and most laptops do not have one. There are four workarounds, in order of how reliable they are.

  • Copy the character instead. This is the only method that behaves the same in every application, which is what this site is for.
  • Press Win and the full stop key together. Windows opens the emoji and symbol panel, which has a symbols tab with arrows, currency, math and punctuation.
  • Turn on the on-screen numeric keypad. Some laptops map a hidden keypad onto the letter keys behind an Fn or NumLock combination. Check the small printed digits on the J, K, L, U, I and O keys.
  • In Microsoft Word, type the hexadecimal code point and press Alt and X together. Typing 2192 followed by Alt+X converts it into an arrow, no keypad needed. This works in Word only, not across Windows.

Where alt codes stop working, and why

An alt code is handled by the operating system before the keystroke reaches the application, but the application gets to decide whether it wants the Alt key at all. Browsers use Alt to open menus and to jump to access keys. Office applications use Alt to enter the ribbon. Terminal emulators frequently map Alt to a meta modifier for the shell. In all three cases the sequence can be swallowed before Windows ever assembles the digits into a character.

That is why the same alt code works in Notepad, does nothing in a browser, and opens a menu in Word. It is not the code that is wrong. It is that the application claimed the key first. There is no setting that fixes this in general, which is the honest answer that alt code lists tend to leave out.

A second failure mode is quieter. Long codes above 255 depend on the application supporting the modern input path. Where it does not, the digits get read against the legacy table instead, so a long code silently produces whatever character sits at that position in the old code page. You get a character rather than nothing, which is worse, because the mistake is easy to miss.

Alt codes in remote sessions and virtual machines

Remote desktop sessions, virtual machines and browser-based terminals add another layer. Each one has to forward the raw key events rather than the resulting characters, and several of them do not forward the Alt-held state of the numeric keypad correctly. The symptom is that a code which works locally produces nothing, or produces the plain digits, inside the session.

If you spend time in those environments the practical order is short. Copy the character where you can, use the Word conversion where the target is a Word document, and keep a small personal list of the ten characters you actually need rather than relying on typing them at all.

Alt codes are Windows-only

There is no alt code on macOS, Linux, ChromeOS, iOS or Android. Those platforms use their own mechanisms: Option key combinations and the Character Viewer on macOS, Ctrl+Shift+U followed by the hexadecimal code point on Linux with IBus, and the emoji keyboard on phones. If a page promises you an alt code for a Mac, it is describing something else.

Frequently asked questions

Why does my alt code produce the wrong character?

Almost always the leading zero. Alt 0176 uses the Windows ANSI table and gives the degree sign; Alt 176 uses the old OEM table and gives a shaded block. Add or remove the leading zero and try again.

Do alt codes work in the browser?

Sometimes. Browsers claim the Alt key for their own menu shortcuts, so the sequence can be swallowed before it reaches the text field. Copying the character is the reliable route in a browser.

Is there an alt code for every symbol?

No. Only a small legacy set has a documented short alt code. Any character with a Unicode code point below 65536 can be typed with its decimal code point as a long alt code in applications that support it, but many characters have no short code at all.

Copy the characters in this guide

Related category hubs

Other guides

Or skip the keystrokes: open the full symbol reference and click any glyph to copy it.