How to type symbols
7 guides covering every method for typing a symbol on Windows, macOS and the web.
Start with the guide that matches your keyboard and your target. With a Windows keyboard that has a numeric keypad, the Alt code guide is the fastest route. On a laptop without a numpad, or on a Mac, or when you are writing HTML or code, one of the other guides covers that path.
All 7 guides
What Is an Alt Code? Alt Codes vs Unicode Code Points
An Alt code is a number from an older Windows code page that you type on the numeric keypad while holding Alt. It is not the same as a Unicode code point. Here is how the two systems differ and why it matters.
How to Type Alt Codes on Windows (With and Without a Numpad)
Alt codes are typed with the left Alt key plus the numeric keypad. Here is the full method, the three-digit and four-digit code tables, and what to do when your keyboard has no numpad.
How to Type Symbols Without a Numpad (5 Working Methods)
Alt codes need a numeric keypad. If your laptop does not have one, these five methods still let you type any symbol: Fn numpad, Character Viewer, Touch Keyboard, HTML entities and copy-paste.
Windows Alt+X Hex Codes: Type Any Unicode Character
Type a Unicode hex code point then press Alt and X to convert it into the character in Word, WordPad and Outlook. Here is how the method works, where it stops, and the registry setting for the numpad form.
How to Type Symbols on a Mac (Option Keys and Character Viewer)
Macs do not use Alt codes. They use Option key shortcuts and the Character Viewer. Here are the shortcuts for common symbols, the hex entry method, and how to find any character.
How to Type Symbols in HTML: Named, Decimal and Hex Entities
HTML accepts three ways to write any symbol: a named entity like ©, a decimal escape like ©, and a hex escape like ©. Here is when each one is safe to use.
How to Write Symbols in CSS, Python, JavaScript and JSON
Each language escapes Unicode characters differently: CSS uses a backslash with a required trailing space, JavaScript uses \u with braces above the BMP, JSON uses UTF-16 pairs, and Python has both \u and \U forms.