Skip to main content

ASCII

  • ASCII - American Standard Code for Information Interchange - 美国信息交换标准代码
  • 7-bit 编码,0-127 共 128 个字符
  • 0-31, 127: 控制字符
  • 32-126: 可打印字符

控制字符 (0-31, 127)

DecHexOct按键缩写名称说明
00x00000C-@NULNull空字符
10x01001C-aSOHStart of Heading标题开始
20x02002C-bSTXStart of Text正文开始
30x03003C-cETXEnd of Text正文结束 (中断)
40x04004C-dEOTEnd of Transmission传输结束 (EOF)
50x05005C-eENQEnquiry请求
60x06006C-fACKAcknowledge确认
70x07007C-gBELBell响铃 \a
80x08010C-hBSBackspace退格 \b
90x09011C-iHTHorizontal Tab水平制表符 \t
100x0A012C-jLFLine Feed换行 \n
110x0B013C-kVTVertical Tab垂直制表符 \v
120x0C014C-lFFForm Feed换页 \f
130x0D015C-mCRCarriage Return回车 \r
140x0E016C-nSOShift Out移出
150x0F017C-oSIShift In移入
160x10020C-pDLEData Link Escape数据链路转义
170x11021C-qDC1Device Control 1设备控制1 (XON)
180x12022C-rDC2Device Control 2设备控制2
190x13023C-sDC3Device Control 3设备控制3 (XOFF)
200x14024C-tDC4Device Control 4设备控制4
210x15025C-uNAKNegative Acknowledge否定确认
220x16026C-vSYNSynchronous Idle同步空闲
230x17027C-wETBEnd of Transmission Blk传输块结束
240x18030C-xCANCancel取消
250x19031C-yEMEnd of Medium介质结束
260x1A032C-zSUBSubstitute替换 (SIGTSTP)
270x1B033C-[ESCEscape转义
280x1C034C-\FSFile Separator文件分隔符
290x1D035C-]GSGroup Separator组分隔符
300x1E036C-^RSRecord Separator记录分隔符
310x1F037C-_USUnit Separator单元分隔符
1270x7F177C-?DELDelete删除

可打印字符 (32-126)

DecHexCharDecHexCharDecHexChar
320x20SP640x40@960x60`
330x21!650x41A970x61a
340x22"660x42B980x62b
350x23#670x43C990x63c
360x24$680x44D1000x64d
370x25%690x45E1010x65e
380x26&700x46F1020x66f
390x27'710x47G1030x67g
400x28(720x48H1040x68h
410x29)730x49I1050x69i
420x2A*740x4AJ1060x6Aj
430x2B+750x4BK1070x6Bk
440x2C,760x4CL1080x6Cl
450x2D-770x4DM1090x6Dm
460x2E.780x4EN1100x6En
470x2F/790x4FO1110x6Fo
480x300800x50P1120x70p
490x311810x51Q1130x71q
500x322820x52R1140x72r
510x333830x53S1150x73s
520x344840x54T1160x74t
530x355850x55U1170x75u
540x366860x56V1180x76v
550x377870x57W1190x77w
560x388880x58X1200x78x
570x399890x59Y1210x79y
580x3A:900x5AZ1220x7Az
590x3B;910x5B[1230x7B{
600x3C<920x5C\1240x7C|
610x3D=930x5D]1250x7D}
620x3E940x5E1260x7E~
630x3F?950x5F_

常用转义序列

转义ASCII说明
\00空字符
\a7响铃
\b8退格
\t9水平制表
\n10换行
\v11垂直制表
\f12换页
\r13回车
\\92反斜杠
\'39单引号
\"34双引号

字符分类

范围类型说明
0-31控制字符不可打印
32空格SP (Space)
33-47标点符号! " # $ % & ' ( ) * + , - . /
48-57数字0-9
58-64标点符号: ; < = > ? @
65-90大写字母A-Z
91-96标点符号[ \ ] ^ _ `
97-122小写字母a-z
123-126标点符号{ | } ~
127控制字符DEL

计算规则

# 大小写转换 (差值 32)
'A' (65) + 32 = 'a' (97)
'a' (97) - 32 = 'A' (65)

# 数字字符转数值
'5' (53) - '0' (48) = 5

# Ctrl 组合键 (减去 64 或 0x40)
'C' (67) - 64 = 3 (C-c = ETX)
'M' (77) - 64 = 13 (C-m = CR)

FAQ

LF vs CR

不同操作系统使用不同的换行符:

系统换行符ASCII转义说明
Unix/Linux/MacLF10 (0x0A)\nLine Feed
WindowsCRLF13+10\r\nCarriage Return + LF
旧版 Mac (≤9)CR13 (0x0D)\rCarriage Return

历史来源 (打字机):

  • CR (Carriage Return): 打印头回到行首
  • LF (Line Feed): 纸张向上移动一行

常见问题:

# 查看文件换行符
file myfile.txt # 显示 "with CRLF line terminators"
cat -A myfile.txt # ^M 表示 CR

# 转换换行符
dos2unix myfile.txt # CRLF → LF
unix2dos myfile.txt # LF → CRLF
sed -i 's/\r$//' myfile.txt # 删除 CR

# Git 配置
git config --global core.autocrlf input # Linux/Mac
git config --global core.autocrlf true # Windows

.gitattributes 配置:

* text=auto eol=lf
*.bat text eol=crlf
*.sh text eol=lf