ASCII 参考
ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是一种字符编码标准,用于表示文本和控制字符。它最早在 1963 年由美国国家标准协会(ANSI)发布,至今仍然广泛应用于计算机科学、编程、通信和数据存储等领域。
1. 什么是 ASCII?
ASCII 是一种 7 位编码方案,最初设计用来为计算机提供统一的字符表示方式。它定义了 128 个字符,其中包括 33 个控制字符和 95 个可打印字符。
1.1. ASCII 的基本结构
ASCII 字符集被划分为以下几个部分:
- 控制字符(0 - 31 和 127):
这些字符用于控制计算机设备(如打印机、终端等)的行为,而不是显示文本。例如,回车符(CR)、换行符(LF)、空格符等。 - 可打印字符(32 - 126):
包括所有我们可以在屏幕上看到的字符,如字母(A-Z, a-z)、数字(0-9)、标点符号(如!,?,@)以及一些常用符号(如&,#,$等)。
2. ASCII 控制字符
ASCII 中的控制字符(编号 0 到 31 和 127)最初用于控制硬件设备(如终端和打印机),它们的功能包括换行、回车、响铃、制表符等。以下是常见的控制字符及其说明:
| 编号 | 字符 | 十六进制 | 二进制 | 名称 |
|---|---|---|---|---|
| 0 | NUL | 0x00 | 00000000 | 空字符 |
| 1 | SOH | 0x01 | 00000001 | 标题开始 |
| 2 | STX | 0x02 | 00000010 | 正文开始 |
| 3 | ETX | 0x03 | 00000011 | 正文结束 |
| 4 | EOT | 0x04 | 00000100 | 传输结束 |
| 5 | ENQ | 0x05 | 00000101 | 请求 |
| 6 | ACK | 0x06 | 00000110 | 确认 |
| 7 | BEL | 0x07 | 00000111 | 响铃 |
| 8 | BS | 0x08 | 00001000 | 退格符 |
| 9 | TAB | 0x09 | 00001001 | 水平制表符 |
| 10 | LF | 0x0A | 00001010 | 换行符 |
| 11 | VT | 0x0B | 00001011 | 垂直制表符 |
| 12 | FF | 0x0C | 00001100 | 换页符 |
| 13 | CR | 0x0D | 00001101 | 回车符 |
| 14 | SO | 0x0E | 00001110 | 换码符 |
| 15 | SI | 0x0F | 00001111 | 退码符 |
| 16 | DLE | 0x10 | 00010000 | 数据链路转义 |
| 17 | DC1 | 0x11 | 00010001 | 设备控制 1 |
| 18 | DC2 | 0x12 | 00010010 | 设备控制 2 |
| 19 | DC3 | 0x13 | 00010011 | 设备控制 3 |
| 20 | DC4 | 0x14 | 00010100 | 设备控制 4 |
| 21 | NAK | 0x15 | 00010101 | 不接受 |
| 22 | SYN | 0x16 | 00010110 | 同步 |
| 23 | ETB | 0x17 | 00010111 | 传输块结束 |
| 24 | CAN | 0x18 | 00011000 | 取消 |
| 25 | EM | 0x19 | 00011001 | 结束标记 |
| 26 | SUB | 0x1A | 00011010 | 替换符 |
| 27 | ESC | 0x1B | 00011011 | 转义符 |
| 28 | FS | 0x1C | 00011100 | 文件分隔符 |
| 29 | GS | 0x1D | 00011101 | 组分隔符 |
| 30 | RS | 0x1E | 00011110 | 记录分隔符 |
| 31 | US | 0x1F | 00011111 | 单元分隔符 |
| 127 | DEL | 0x7F | 01111111 | 删除符 |
3. ASCII 可打印字符
可打印字符从 ASCII 编号 32 到 126,包括大写字母、小写字母、数字、标点符号以及一些常用符号。以下是可打印字符的一部分:
| 编号 | 字符 | 十六进制 | 二进制 | 名称 |
|---|---|---|---|---|
| 32 | (空格) | 0x20 | 00100000 | 空格 |
| 33 | ! | 0x21 | 00100001 | 感叹号 |
| 34 | " | 0x22 | 00100010 | 双引号 |
| 35 | # | 0x23 | 00100011 | 井号 |
| 36 | $ | 0x24 | 00100100 | 美元符号 |
| 37 | % | 0x25 | 00100101 | 百分号 |
| 38 | & | 0x26 | 00100110 | 和符号 |
| 39 | ’ | 0x27 | 00100111 | 单引号 |
| 40 | ( | 0x28 | 00101000 | 左括号 |
| 41 | ) | 0x29 | 00101001 | 右括号 |
| 42 | * | 0x2A | 00101010 | 星号 |
| 43 | + | 0x2B | 00101011 | 加号 |
| 44 | , | 0x2C | 00101100 | 逗号 |
| 45 | - | 0x2D | 00101101 | 减号 |
| 46 | . | 0x2E | 00101110 | 句号 |
| 47 | / | 0x2F | 00101111 | 斜杠 |
| 48 | 0 | 0x30 | 00110000 | 数字 0 |
| 49 | 1 | 0x31 | 00110001 | 数字 1 |
| 50 | 2 | 0x32 | 00110010 | 数字 2 |
| 51 | 3 | 0x33 | 00110011 | 数字 3 |
| 52 | 4 | 0x34 | 00110100 | 数字 4 |
| 53 | 5 | 0x35 | 00110101 | 数字 5 |
| 54 | 6 | 0x36 | 00110110 | 数字 6 |
| 55 | 7 | 0x37 | 00110111 | 数字 7 |
| 56 | 8 | 0x38 | 00111000 | 数字 8 |
| 57 | 9 | 0x39 | 00111001 | 数字 9 |
| 58 | : | 0x3A | 00111010 | 冒号 |
| 59 | ; | 0x3B | 00111011 | 分号 |
| 60 | < | 0x3C | 00111100 | 小于号 |
| 61 | = | 0x3D | 00111101 | 等号 |
| 62 | > | 0x3E | 00111110 | 大于号 |
| 63 | ? | 0x3F | 00111111 | 问号 |
| 64 | @ | 0x40 | 01000000 | 电子邮件符号 |
| 65 | A | 0x41 | 01000001 | 字母 A |
| 66 | B | 0x42 | 01000010 | 字母 B |
| 67 | C | 0x43 | 01000011 | 字母 C |
| 68 | D | 0x44 | 01000100 | 字母 D |
| 69 | E | 0x45 | 01000101 | 字母 E |
| 70 | F | 0x46 | 01000110 | 字母 F |
| 71 | G | 0x47 | 01000111 | 字母 G |
| 72 | H | 0x48 | 01001000 | 字母 H |
| 73 | I | 0x49 | 01001001 | 字母 I |
| 74 | J | 0x4A | 01001010 | 字母 J |
| 75 | K | 0x4B | 01001011 | 字母 K |
| 76 | L | 0x4C | 01001100 | 字母 L |
| 77 | M | 0x4D | 01001101 | 字母 M |
| 78 | N | 0x4E | 01001110 | 字母 N |
| 79 | O | 0x4F | 01001111 | 字母 O |
| 80 | P | 0x50 | 01010000 | 字母 P |
| 81 | Q | 0x51 | 01010001 | 字母 Q |
| 82 | R | 0x52 | 01010010 | 字母 R |
| 83 | S | 0x53 | 01010011 | 字母 S |
| 84 | T | 0x54 | 01010100 | 字母 T |
| 85 | U | 0x55 | 01010101 | 字母 U |
| 86 | V | 0x56 | 01010110 | 字母 V |
| 87 | W | 0x57 | 01010111 | 字母 W |
| 88 | X | 0x58 | 01011000 | 字母 X |
| 89 | Y | 0x59 | 01011001 | 字母 Y |
| 90 | Z | 0x5A | 01011010 | 字母 Z |
| 91 | [ | 0x5B | 01011011 | 左方括号 |
| 92 | \ | 0x5C | 01011100 | 反斜杠 |
| 93 | ] | 0x5D | 01011101 | 右方括号 |
| 94 | ^ | 0x5E | 01011110 | 插入符号 |
| 95 | _ | 0x5F | 01011111 | 下划线 |
| 96 | ` | 0x60 | 01100000 | 反引号 |
| 97 | a | 0x61 | 01100001 | 字母 a |
| 98 | b | 0x62 | 01100010 | 字母 b |
| 99 | c | 0x63 | 01100011 | 字母 c |
| 100 | d | 0x64 | 01100100 | 字母 d |
| 101 | e | 0x65 | 01100101 | 字母 e |
| 102 | f | 0x66 | 01100110 | 字母 f |
| 103 | g | 0x67 | 01100111 | 字母 g |
| 104 | h | 0x68 | 01101000 | 字母 h |
| 105 | i | 0x69 | 01101001 | 字母 i |
| 106 | j | 0x6A | 01101010 | 字母 j |
| 107 | k | 0x6B | 01101011 | 字母 k |
| 108 | l | 0x6C | 01101100 | 字母 l |
| 109 | m | 0x6D | 01101101 | 字母 m |
| 110 | n | 0x6E | 01101110 | 字母 n |
| 111 | o | 0x6F | 01101111 | 字母 o |
| 112 | p | 0x70 | 01110000 | 字母 p |
| 113 | q | 0x71 | 01110001 | 字母 q |
| 114 | r | 0x72 | 01110010 | 字母 r |
| 115 | s | 0x73 | 01110011 | 字母 s |
| 116 | t | 0x74 | 01110100 | 字母 t |
| 117 | u | 0x75 | 01110101 | 字母 u |
| 118 | v | 0x76 | 01110110 | 字母 v |
| 119 | w | 0x77 | 01110111 | 字母 w |
| 120 | x | 0x78 | 01111000 | 字母 x |
| 121 | y | 0x79 | 01111001 | 字母 y |
| 122 | z | 0x7A | 01111010 | 字母 z |
| 123 | { | 0x7B | 01111011 | 左大括号 |
| 124 | | | 0x7C | 01111100 | 竖线 |
| 125 | } | 0x7D | 01111101 | 右大括号 |
| 126 | ~ | 0x7E | 01111110 | 波浪号 |
4. 缺点
随着全球化的发展,世界的发展进度,ASCII 的限制逐渐显现,因为它只能表示 128 个字符,你说表示个英文还阔以,但是你到东亚这边,来个中文,立马歇菜;故而 Unicode 则提供了一个包含世界上几乎所有文字和符号的标准。UTF-8 是一种可变长度的字符编码,它向后兼容 ASCII,使用 1 到 4 个字节来表示一个字符。
5. 参考
- 维基百科:ASCII