跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
GSXAB的知识库
搜索
搜索
外观
登录
个人工具
登录
Advertising:
查看“︁ASCII”︁的源代码
页面
讨论
简体中文
阅读
查看源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
查看源代码
查看历史
刷新
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
←
ASCII
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[分类:字符编码实例]] [[分类:字符集实例]] {{InfoBox |name=ASCII |eng_name=ASCII |aliases=US-ASCII,ASCII码,美国信息交换标准代码,美国标准信息交换码,American Standard Code for Information Interchange }} {{#seo: |keywords=ASCII, 美国信息交换标准代码 |description=介绍了 ASCII 字符集及 ASCII 字符编码,计算机领域影响最深远的字符集和字符编码,并给出了一个码表,最后说明了其使用现状。 |modified_time={{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}} |published_time=2025-08-02 }} '''ASCII'''<ref>ASCII {{IPA|[ˈæs.kiː]}} ,中 {{IPA|[ä.sz̩.kɤ]}} 。全称为 '''American Standard Code for Information Interchange''' ,译为'''美国信息交换标准代码''',全称只用于解释这个词语,通常使用中只使用缩写。</ref> 是一种常见[[字符编码]],也指这种字符编码中的[[字符集]]。 ASCII 字符集中仅含有 128 个字符,以固定方式分配在由 7 个[[二进制位|二进制位(比特)]]构成的 128 个码位上。 在不同场景下, ASCII 有多种不同别名,如 US-ASCII , ISO 646-US (见[[ISO 646]])等,这些名称指代同一编码。 反过来, ASCII 这一名称也会被误用于其他编码,主要是其他兼容 ASCII 的字符编码,特别是 [[ISO 8859]] 系列及基本符合 ISO 646 中 IRV 兼容的任意编码,甚至会被误用于 [[UTF-8]] 。在部分人的习惯上,“ASCII 码”一词经常被滥用作“二进制字符编码”的同义词,并泛指任意字符编码。 ASCII 标准初发布于 1963 年,有 28 个未分配字符,后续 1967 年、 1968 年、 1977 年与 1986 年有过修订,并形成了现在的标准。 == 字符集特征 == ASCII 编码包含 33 个控制字符以及美式 qwerty 键盘布局中全部可见字符,其中包括阿拉伯数字 0~9 及大小写字母 A~Z 及 a~z 。 ASCII 被设计于电传打字机时代,其控制字符起源于打字机控制操作,其中大部分字符已经随着相关技术退出主流而不再常用,但是仍有部分控制字符仍保留在现代使用。 由于编码空间能容纳的字符总数限制, ASCII 仅覆盖了最少量的数字、英语字母及必要标点,这导致其缺少了必要的符号,比如: * 其仅用一个码位编码了“傻瓜引号(dummy quote)”同时作为前后双引号 <code>"</code> ,而没有使用“智能引号(smart quote)” <code>“”</code> 。 * 作为发源于美国的字符编码,仅编码了美元符号 <code>$</code> 作为货币符号,而缺少了美分符号 <code>¢</code> 。 * 无法支持英语中带有附加符号的字母,如 <code>é</code> 和 <code>ñ</code> 等,以及全部使用分音符的元音字母。 == 编码特征 == === 整体特征 === ASCII 编码空间范围为全体 7 比特二进制串。 [[BCD 码]]催生了四比特数字,进而催生了八位作为传输单元。 早年希望一同传输[[校验码]],因此产生了 1 位校验码 7 位数据的格局。 ASCII 码分区遵循十六进制安排,以兼容 BCD8421 码,并直接将区块按十六进制对齐, 这些使得部分字符间存在明显位运算关系,且可以通过位运算迅速判定字符分类,这一安排影响了后世大量字符编码系统。 === 历史遗留字符 === 全 0 表示[[空字符]],全 1 表示[[擦除字符]],这反映了打孔纸带时代的惯例: 空字符表示什么也不做,而擦除字符表示这个地方之前打孔有误,把这个单元全部孔打掉以示擦除,也处理为什么都不做。 === 位编码的码位安排 === 最高位区分字符所处区块,当最高两位为 0 时是控制字符,全 1 时是控制字符,否则就是普通的打印字符。 空格排在最前面,然后 {{Hex|21}} 开始依次排列打字机键盘中常在数字换档键的字符,与现代英式 qwerty 键盘中数字上档键前一部分相同,美式 qwerty 键盘由于单双引号安排在一起, <code>Shift+2</code> 从 <code>"</code> 变成了 <code>@</code> 。 从 {{Hex|30}} 开始排列数字,且数字的低 4 位与其 BCD 码相同。这使得判定前 3 位后可以兼容地发送给仅处理 4 位 BCD8421 的机器。 <code> HEX 3? = BIN 0011 ???? </code> 从 {{Hex|41}} 和 {{Hex|61}} 开始排列拉丁字母,且其低 5 bit 与字母在英语字母表中的顺序相同。可以看作一个固定前缀加一位大小写,然后是字母顺序的 5 位编码。 <code> HEX 4?~5? = BIN 010? ???? HEX 6?~7? = BIN 011? ???? </code> == 码位表 == {| class='wikitable' style='text-align:center;margin:0 auto;border-width:2px' width='100%' ! colspan=17 | ASCII<ref>https://en.wikipedia.org/wiki/ASCII#Character_set</ref><ref>https://blog.csdn.net/weixin_40948750/article/details/121228437</ref><ref>https://baike.baidu.com/item/ASCII/309296</ref> |- ! - ! _0 <br/> <code>??? 0000</code> ! _1 <br/> <code>??? 0001</code> ! _2 <br/> <code>??? 0010</code> ! _3 <br/> <code>??? 0011</code> ! _4 <br/> <code>??? 0100</code> ! _5 <br/> <code>??? 0101</code> ! _6 <br/> <code>??? 0110</code> ! _7 <br/> <code>??? 0111</code> ! _8 <br/> <code>??? 1000</code> ! _9 <br/> <code>??? 1001</code> ! _A <br/> <code>??? 1010</code> ! _B <br/> <code>??? 1011</code> ! _C <br/> <code>??? 1100</code> ! _D <br/> <code>??? 1101</code> ! _E <br/> <code>??? 1110</code> ! _F <br/> <code>??? 1111</code> |- ! 0_ <br/> <code>000 ????</code> | <small style="font-size:0.6em"><span title="NULL">NUL</span> <br/> [[空字符]]</small> | <small style="font-size:0.6em"><span title="START OF HEADING">SOH</span> <br/> 标题开始<ref>消息的开始。</ref></small> | <small style="font-size:0.6em"><span title="START OF TEXT">STX</span> <br/> 正文开始<ref name="stxetx">正文的开始和结束。</ref></small> | <small style="font-size:0.6em"><span title="END OF TEXT">ETX</span> <br/> 正文结束<ref name="stxetx"/></small> | <small style="font-size:0.6em"><span title="END OF TRANSMISSION">EOT</span> <br/> 传输结束</small> | <small style="font-size:0.6em"><span title="ENQUIRY">ENQ</span> <br/> 查询</small> | <small style="font-size:0.6em"><span title="ACKNOWLEDGE">ACK</span> <br/> 确认<br/>收到应答</small> | <small style="font-size:0.6em"><span title="ALERT">BEL</span> <br/> 响铃<ref>使蜂鸣器发出声音。一般是打字机外设的蜂鸣器,现在主板不一定安装此类外设。</ref></small> | <small style="font-size:0.6em"><span title="BACKSPACE">BS</span> <br/> 退格<ref>打印头向左回退一个位置。打字机上用于将同一个字符重复打印以强调,或将附加符号打印到字母同一个位置上。在 CRT 时代无效,现代则演变变为了回退位置并删除这个位置字符的退格键。</ref></small> | <small style="font-size:0.6em"><span title="CHARACTER TABULATION / HORIZONTAL TABULATION">HT</span> <br/> 水平制表 <br/> <span title="TABULATION">TAB</span> <br/>[[制表符]]<ref>打印头移动到下一个水平制表位。控制输出设备到下一个预定义的表格位置,具体位置是灵活的,通常为左侧起每 4 个空格的位置。</ref></small> | <small style="font-size:0.6em"><span title="LINE FEED">LF</span><br/><span title="NEW LINE">NL</span><br/><span title="END OF LINE">EOL</span> <br/> [[换行]]<ref>打印头移动到下一行。打字机时代只将打印头向下一行,而不移动到行首(CR)。现代在部分系统中代替 CRLF 。</ref></small> | <small style="font-size:0.6em"><span title="LINE TABULATION / VERTICAL TABULATION">VT</span> <br/> [[制表符|垂直制表]]<ref>打印头移动到下一个垂直制表位。</ref></small> | <small style="font-size:0.6em"><span title="FORM FEED">FF</span><br/><span title="NEW PAGE">NP</span> <br/> 换页<ref>打字机打印头移动到下一页,或者换纸。</ref></small> | <small style="font-size:0.6em"><span title="CARRIAGE RETURN">CR</span> <br/> [[回车]]<ref>打印头移动到行首,但是不移动到下一行(LF)。现代在部分系统中代替 CRLF 。</ref></small> | <small style="font-size:0.6em"><span title="SHIFT OUT">SO</span> <br/> <span title="LOCKING-SHIFT ONE">LS1</span> <br/> 移出<ref name="sosi">移出、移入打字机的彩色纸带、备用字符集等。</ref></small> | <small style="font-size:0.6em"><span title="SHIFT IN">SI</span><br/><span title="LOCKING-SHIFT ZERO">LS0</span> <br/>移入<ref name="sosi"/></small> |- ! 1_ <br/> <code>001 ????</code> | <small style="font-size:0.6em"><span title="DATA LINK ESCAPE">DLE</span> <br/> 数据链路转义<ref>标记需要对接下来的数据流做某种转义。</ref></small> | <small style="font-size:0.6em"><span title="DEVICE CONTROL ONE">DC1</span> <br/> 设备控制 1 <br/> <span title="TRANSMIT ON">XON</span> <br/> 传输开始 </small> | <small style="font-size:0.6em"><span title="DEVICE CONTROL TWO">DC2</span> <br/> 设备控制 2</small> | <small style="font-size:0.6em"><span title="DEVICE CONTROL THREE">DC3</span> <br/> 设备控制 3 <br/> <span title="TRANSMIT OFF">XOFF</span> <br/> 传输中断 </small> | <small style="font-size:0.6em"><span title="DEVICE CONTROL FOUR">DC4</span> <br/> 设备控制 4</small> | <small style="font-size:0.6em"><span title="NEGATIVE ACKNOWLEDGE">NAK</span><br/> 拒绝<br/>否定应答</small> | <small style="font-size:0.6em"><span title="SYNCHRONOUS IDLE">SYN</span><br/> 同步空闲</small> | <small style="font-size:0.6em"><span title="END OF TRANSMISSION BLOCK">ETB</span><br/>传输块结束</small> | <small style="font-size:0.6em"><span title="CANCEL">CAN</span><br/>取消</small> | <small style="font-size:0.6em"><span title="END OF MEDIUM">EM</span><br/>介质结束<ref>指存储介质逻辑上到达末端,已被写满。</ref></small> | <small style="font-size:0.6em"><span title="SUBSTITUTE">SUB</span><br/>代替</small> | <small style="font-size:0.6em"><span title="ESCAPE">ESC</span><br/>换码<br/>[[转义字符]]<br/>溢出</small> | <small style="font-size:0.6em"><span title="INFORMATION SEPARATOR FOUR / FILE SEPARATOR">FS</span><br/>文件分隔符<ref name="sep">最初用于打孔纸带、磁带等顺序存储介质中分隔数据控制字符。分别对应于分割文件、数据表、数据记录、数据单元(单元格,今称字段)。</ref></small> | <small style="font-size:0.6em"><span title="INFORMATION SEPARATOR THREE / GROUP SEPARATOR">GS</span><br/>组分隔符<ref name="sep"/></small> | <small style="font-size:0.6em"><span title="INFORMATION SEPARATOR TWO / RECORD SEPARATOR">RS</span><br/>记录分隔符<ref name="sep"/></small> | <small style="font-size:0.6em"><span title="INFORMATION SEPARATOR ONE / UNIT SEPARATOR">US</span><br/>单元分隔符<ref name="sep"/></small> |- ! 2_ <br/> <code>010 ????</code> | <small style="font-size:0.6em"><span title="SPACE">SP</span><br/>[[空白字符|空格]]</small> | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / |- ! 3_ <br/> <code>011 ????</code> | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |- ! 4_ <br/> <code>100 ????</code> | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |- ! 5_ <br/> <code>101 ????</code> | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ |- ! 6_ <br/> <code>110 ????</code> | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |- ! 7_ <br/> <code>111 ????</code> | p | q | r | s | t | u | v | w | x | y | z | { | <nowiki>|</nowiki> | } | ~ | <small style="font-size:0.6em"><span title="DELETE">DEL</span><br/>[[擦除字符]]</small> |} == 字符编码 == ASCII 字符集中编码空间长度为 7 位,传输一般使用 8 位长度单元。 曾经使用 1 位奇偶校验位和 7 位数据位的 8 位。现在说 ASCII 字符编码,一般指的是最高位填充 0 的 8 位。 == 使用 == ASCII 编码几乎无处不在。很多协议(特别是需要兼容性以及出现较早的协议)都要求 ASCII 编码,但是面对用户的情况下又几乎不实际使用,因为 ASCII 支持字符过于有限,几乎所有应用场景中都在使用与 ASCII 兼容的某种扩展编码,而不使用 ASCII 本身。 扩展 ASCII 、 ISO 8859 系列的编码,以及符合 ISO 646 的编码,以及中文环境中常用的 GB 2312 系列编码、现代常用的 UTF-8 编码,都保证在 0~127 的编码范围内与 ASCII 兼容。 由于 ASCII 最常用于输入,字符集缺陷甚至反向影响了文本。不便于输入甚至可能构成了英语中附加符号使用减少的一个因素;大部分字体中会区分成对的尖括号和大小于号,但是 ASCII 中的混用,导致哪怕后续字符集往往区分这两对字符,也不会被区分使用。 {{常见字符编码}}
返回
ASCII
。
Advertising: