User Rating 0.0
Total Usage 0 times
Separate multiple codes with commas, spaces, or new lines. Use leading zero (e.g. 0169) for Windows-1252 mode.
Results will appear here after conversion.
Is this tool helpful?

Your feedback helps us improve.

About

Alt codes originated from IBM PC's Code Page 437 (CP437), a character encoding that mapped 256 byte values to glyphs for the original IBM Personal Computer in 1981. When you hold Alt and type a number on the numpad, Windows translates that integer through the active codepage into a character. The problem: CP437 and Windows-1252 diverge from Unicode in the range 128 - 255, causing silent mojibake when pasting across systems. This tool performs the exact codepage-aware mapping, converting your Alt code input into the correct Unicode codepoint (U+XXXX), UTF-8 character, and HTML entity. It handles both the CP437 mapping (Alt+1 through Alt+255 without leading zero) and the Windows-1252 ANSI mapping (Alt+0XXX with leading zero). Misidentifying the codepage is how developers end up with â€" instead of an em dash.

Batch conversion accepts comma-separated or newline-separated Alt codes, outputting a complete table with the rendered glyph, Unicode name, hex codepoint, and HTML entity. A reverse mode lets you paste any character to retrieve its Alt code. Note: Alt codes above 255 are not natively supported by all Windows versions. This tool approximates extended codes by direct Unicode codepoint mapping, which may differ from OEM codepage behavior on legacy systems.

alt code unicode character converter utf-8 html entity special characters ascii code point

Formulas

The conversion from an Alt code to a Unicode character depends on whether the code uses a leading zero (Windows-1252 / ANSI mode) or not (CP437 / OEM mode).

{
CP437(n) U+XXXX if input has no leading zero, 1 n 255Win1252(n) U+XXXX if input has leading zero, 0 n 255fromCodePoint(n) char if n > 255 (direct Unicode)

Where n is the numeric Alt code entered by the user. The CP437 function uses a lookup table that maps OEM byte values to Unicode codepoints. For values 0 - 127, CP437 matches ASCII identically: n U+n. For values 128 - 255, CP437 diverges. The Win1252 function maps the Windows-1252 superset of ISO-8859-1. The critical divergence zone is bytes 0x80 - 0x9F (128 - 159 decimal), where Windows-1252 assigns characters like the Euro sign (U+20AC at position 0x80) while ISO-8859-1 leaves them as C1 control codes.

The HTML entity output uses decimal notation: &#codepoint; where codepoint is the decimal Unicode value. Named entities (e.g., ) are provided when they exist in the HTML5 specification.

Reference Data

Alt CodeCharUnicodeHTML EntityDescriptionCategory
1U+263AWhite Smiling FaceSymbol
2U+263BBlack Smiling FaceSymbol
3U+2665Black Heart SuitSymbol
4U+2666Black Diamond SuitSymbol
5U+2663Black Club SuitSymbol
6U+2660Black Spade SuitSymbol
13U+266AEighth NoteMusic
14U+266BBeamed Eighth NotesMusic
15U+263CWhite Sun with RaysWeather
0128U+20ACEuro SignCurrency
0163£U+00A3£Pound SignCurrency
0165¥U+00A5¥Yen SignCurrency
0169©U+00A9©Copyright SignLegal
0174®U+00AE®Registered SignLegal
0176°U+00B0°Degree SignMath
0177±U+00B1±Plus-Minus SignMath
0178²U+00B2²Superscript TwoMath
0181µU+00B5µMicro SignScience
0188¼U+00BC¼Vulgar Fraction One QuarterMath
0189½U+00BD½Vulgar Fraction One HalfMath
0190¾U+00BE¾Vulgar Fraction Three QuartersMath
155¢U+00A2¢Cent SignCurrency
171«U+00AB«Left Double Angle QuotationPunctuation
172»U+00BB»Right Double Angle QuotationPunctuation
224αU+03B1αGreek Small Letter AlphaGreek
225ßU+00DFßLatin Small Letter Sharp SLatin
227πU+03C0πGreek Small Letter PiGreek
228ΣU+03A3ΣGreek Capital Letter SigmaGreek
230µU+00B5µMicro Sign (CP437)Science
236U+221EInfinityMath
241±U+00B1±Plus-Minus Sign (CP437)Math
246÷U+00F7÷Division SignMath
248°U+00B0°Degree Sign (CP437)Math
0153U+2122Trade Mark SignLegal
0151 - U+2014Em DashPunctuation
0150 - U+2013En DashPunctuation

Frequently Asked Questions

Alt codes typed without a leading zero (e.g., Alt+171) use Code Page 437 (CP437), the original IBM PC character set. Alt codes typed with a leading zero (e.g., Alt+0171) use Windows-1252, which is Microsoft's superset of ISO-8859-1. The two codepages map identical values for positions 0-127 (standard ASCII), but diverge significantly in the 128-255 range. For example, Alt+130 produces é (U+00E9) via CP437, while Alt+0130 produces a single low-9 quotation mark ‚ (U+201A) via Windows-1252. This converter detects the leading zero in your input and applies the correct codepage mapping automatically.
The character produced depends on the active OEM codepage configured in the operating system. US English systems typically use CP437, but Eastern European systems may use CP852, and Cyrillic systems use CP866. Each codepage maps the 128-255 range differently. This tool uses CP437 as the default OEM mapping because it is the most widely referenced in Alt code charts. If your system uses a different codepage, the actual character displayed when you press the Alt key combination may differ from the Unicode character shown here.
On Windows, you can type Alt codes above 255 using the numeric keypad if you have the registry key EnableHexNumpad set, or by using the Unicode input method (Alt+X in some Microsoft applications). However, the classic Alt+numpad method in most applications only supports values 0-255 mapped through the active codepage. This tool supports codes above 255 by mapping them directly to their Unicode codepoint via String.fromCodePoint(), which is technically a Unicode codepoint lookup rather than a traditional Alt code conversion.
The reverse lookup takes a pasted or typed character, extracts its Unicode codepoint using charCodeAt() or codePointAt() for characters outside the Basic Multilingual Plane, then searches the CP437 and Windows-1252 mapping tables for a matching entry. If the character exists in CP437, it returns the OEM Alt code (no leading zero). If it exists in Windows-1252, it returns the ANSI Alt code (with leading zero, e.g., 0169 for ©). If the character is not in either codepage, the tool reports only its Unicode codepoint (U+XXXX) and notes that no standard Alt code exists for it.
Unicode codepoints U+0000 through U+001F are C0 control characters (NUL, SOT, ETX, BEL, BS, TAB, LF, CR, etc.). They do not have visible glyphs in Unicode. However, CP437 assigned graphical symbols to these positions (smileys, card suits, musical notes, arrows). This tool displays the CP437 graphical representation for codes 1-31, which maps to Unicode symbols in the Miscellaneous Symbols block (U+263A for code 1, U+2665 for code 3, etc.). The actual control function is not invoked.
ASCII defines 128 characters (0-127) and is a strict subset of both CP437 and Unicode. CP437 extended this to 256 characters by filling positions 128-255 with accented letters, box-drawing characters, and mathematical symbols. Unicode (currently version 15.1 with over 149,000 characters) is a universal superset that assigns a unique codepoint to every character from every writing system. Alt codes are an input method, not a character encoding. They reference positions in a codepage (CP437 or Windows-1252), which this tool then resolves to the corresponding Unicode codepoint.