《Linux下的^M困惑》曾提到\r对应的ASCII码十进制形式是13(无显示形式),对应的八进制形式是15(显示为^M),有朋友在后台反馈对ASCII码有些疑惑,因此在这,简单介绍下ASCII。
ASCII,英文全称是American Standard Code for Information Interchange,中文名称就是美国信息互换标准代码,他是基于拉丁字母的一套电脑编码系统。ASCII码表主要用于显示现代英语和其他西欧语言。
基于上图,ASCII码大致可以分作三部分组成,第一部分是ASCII非打印控制字符,第二部分是ASCII打印字符,第三部分是扩展ASCII打印字符。
第一部分:ASCII非打印控制字符表
ASCII表上的数字0–31分配给了控制字符,用于控制像打印机等一些外围设备。例如,12代表换页/新页功能。此命令指示打印机跳到下一页的开头,数字127代表DELETE命令,
二进制 | 十进制 | 十六进制 | 缩写/可以显示的表示法 | 名称/意义 |
---|---|---|---|---|
0000 0000 | 0 | 00 | NUL | 空字符(Null) |
0000 0001 | 1 | 01 | SOH | 标题开始 |
0000 0010 | 2 | 02 | STX | 本文开始 |
0000 0011 | 3 | 03 | ETX | 本文结束 |
0000 0100 | 4 | 04 | EOT | 传输结束 |
0000 0101 | 5 | 05 | ENQ | 请求 |
0000 0110 | 6 | 06 | ACK | 确认回应 |
0000 0111 | 7 | 07 | BEL | 响铃 |
0000 1000 | 8 | 08 | BS | 退格 |
0000 1001 | 9 | 09 | HT | 水平定位符号 |
0000 1010 | 10 | 0A | LF | 换行键 |
0000 1011 | 11 | 0B | VT | 垂直定位符号 |
0000 1100 | 12 | 0C | FF | 换页键 |
0000 1101 | 13 | 0D | CR | 归位键 |
0000 1110 | 14 | 0E | SO | 取消变换(Shift out) |
0000 1111 | 15 | 0F | SI | 启用变换(Shift in) |
0001 0000 | 16 | 10 | DLE | 跳出数据通讯 |
0001 0001 | 17 | 11 | DC1 | 设备控制一(XON 启用软件速度控制) |
0001 0010 | 18 | 12 | DC2 | 设备控制二 |
0001 0011 | 19 | 13 | DC3 | 设备控制三(XOFF 停用软件速度控制) |
0001 0100 | 20 | 14 | DC4 | 设备控制四 |
0001 0101 | 21 | 15 | NAK | 确认失败回应 |
0001 0110 | 22 | 16 | SYN | 同步用暂停 |
0001 0111 | 23 | 17 | ETB | 区块传输结束 |
0001 1000 | 24 | 18 | CAN | 取消 |
0001 1001 | 25 | 19 | EM | 连接介质中断 |
0001 1010 | 26 | 1A | SUB | 替换 |
0001 1011 | 27 | 1B | ESC | 跳出 |
0001 1100 | 28 | 1C | FS | 文件分割符 |
0001 1101 | 29 | 1D | GS | 组群分隔符 |
0001 1110 | 30 | 1E | RS | 记录分隔符 |
0001 1111 | 31 | 1F | US | 单元分隔符 |
0111 1111 | 127 | 7F | DEL | 删除 |
第二部分:ASCII打印字符
数字32–126分配给了能在键盘上找到的字符,当查看或打印文档时就会出现,又叫做ASCII可显示字符,
|
|
|
来张彩图,可能更清楚,
第三部分:扩展ASCII打印字符
扩展的ASCII字符满足了对更多字符的需求。扩展的ASCII包含ASCII中已有的128个字符,又增加了128个字符,总共是256个。即使有了这些更多的字符,许多语言还是包含无法压缩到256个字符中的符号。因此,出现了一些ASCII的变体来囊括地区性字符和符号。例如,许多软件程序把ASCII表(又称作ISO8859-1)用于北美、西欧、澳大利亚和非洲的语言,
近期的热文: