█▓▒░ getascii.com
[◐ dark]
~/keyboard-map

░▒▓ ASCII KEYBOARD MAP ▓▒░

Every key on your keyboard, mapped to its ASCII code. Hover a key, click to pin it — or just start typing and watch your real keystrokes light up below.
┤ ASCII KEYBOARD ├ ┤ hover · click · type ├
HOVER A KEY — OR JUST START TYPING
DEC HEX OCT BIN HTML UNICODE
every keystroke stays in your browser — nothing is sent anywhere
Esc
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
~
`
!
1
@
2
#
3
$
4
%
5
^
6
&
7
*
8
(
9
)
0
_
-
+
=
Backspace
Tab
Q
W
E
R
T
Y
U
I
O
P
{
[
}
]
|
\
Caps
A
S
D
F
G
H
J
K
L
:
;
"
'
Enter
Shift
Z
X
C
V
B
N
M
<
,
>
.
?
/
Shift
Ctrl
Win
Alt
Space
Alt
Fn
Ctrl
printable character control character (has ASCII code) modifier / function (no ASCII code)

── HOW A KEYPRESS BECOMES AN ASCII CODE────────────────────────────────────────────────────────

Your keyboard doesn't actually send ASCII. Each key press transmits a scancode — a hardware identifier for the physical key. The operating system runs that scancode through your keyboard layout to decide which character it means, and only then does the character get encoded as ASCII (or, today, UTF-8 — which uses the exact same bytes for all 128 ASCII characters).

That's why the same physical key can produce Q on a QWERTY layout and A on AZERTY, and why modifier keys like Shift and Ctrl have no ASCII codes of their own — they don't produce characters, they change what other keys produce.

── CONTROL CHARACTERS YOU CAN TYPE────────────────────────────────────────────────────────

Holding Ctrl and pressing a letter produces ASCII codes 1–26 — the control characters. In a terminal these are live commands, and several everyday keys are secretly the same thing:

COMBODECCHARACTERWHAT IT DOES
Ctrl + C 3 ETX (end of text) Interrupts the running program in a terminal
Ctrl + D 4 EOT (end of transmission) Signals end-of-input; closes a shell
Ctrl + G 7 BEL (bell) Rings the terminal bell
Ctrl + H 8 BS (backspace) Same code the Backspace key sends
Ctrl + I 9 HT (horizontal tab) Identical to pressing Tab
Ctrl + J 10 LF (line feed) The Unix newline character
Ctrl + M 13 CR (carriage return) Identical to pressing Enter
Ctrl + Z 26 SUB (substitute) Suspends a process; end-of-file on Windows
Ctrl + [ 27 ESC (escape) Identical to pressing Esc — vim users know

── FAQ────────────────────────────────────────────────────────

[+] What is the ASCII code for the Enter key?
Enter sends 13 — CR, carriage return. But the "newline" stored in files is LF, code 10, on Unix and macOS; Windows uses the pair CR LF (13 10). This mismatch is why files sometimes gain ^M characters when they cross operating systems.
[+] Do the F1–F12 or Shift keys have ASCII codes?
No. ASCII only encodes characters, and those keys don't produce any. Function keys send scancodes (terminals represent them as multi-byte escape sequences starting with ESC, code 27), and modifiers like Shift, Ctrl, and Alt only change what other keys produce.
[+] How do I type a character by its ASCII code?
On Windows, hold Alt and type the decimal code on the numeric keypad: Alt+65 gives A, Alt+3 gives ♥. On macOS, use Ctrl+Cmd+Space for the character viewer, or hold a letter for accent variants. On Linux, Ctrl+Shift+U followed by the hex code works in most apps.
[+] Why do lowercase and uppercase letters differ by exactly 32?
By design. A is 65 (binary 1000001) and a is 97 (1100001) — the only difference is one bit. ASCII's authors aligned the cases 32 apart so hardware could switch case by flipping a single bit, which is also why the Shift key was cheap to implement in early terminals.

── RELATED TOOLS────────────────────────────────────────────────────────

→ full ascii table → ascii converter → ascii vs unicode → non-ascii checker
── SYMBOLS
all symbols → shrug ¯\_(ツ)_/¯ table flip (╯°□°)╯︵ ┻━┻ lenny face ( ͡° ͜ʖ ͡°) heart symbol ❤ emoticons collection
── TABLE
full ascii table degree symbol ° ascii vs unicode
── CONVERTERS
hex to ascii universal converter
── TOOLS
image to ascii text to ascii art non-ascii checker ascii keyboard map
── SITE
home about privacy contact
NORMAL ~/keyboard-map utf-8 dec · hex · oct · bin