开发编码 本地计算 开箱即用 内置示例 不留痕迹

ASCII 码表

完整收录标准 ASCII 0~127 的全部码位,支持按字符、十进制、十六进制或控制符缩写检索,并给出该码位的四种进制表示与中文含义。

ASCII 码表把字符与数字对应起来,是理解计算机如何存储文本的起点:标准 ASCII 用 7 位表示 128 个码位,其中 0~31 与 127 是不可打印的控制字符(换行、制表、退格等),32~126 是可打印字符。查码位、确认编码、对照协议报文时都用得上。

需要留意 ASCII 只覆盖英文与常见符号,中文并不在其中 —— 汉字走的是 Unicode 与 UTF-8。调试中常遇到的 0x0A 是换行(LF)、0x0D 是回车(CR)、0x41 是字母 A,这些十六进制值与十进制、八进制、二进制描述的是同一个码位,本工具会一并列出。

    使用步骤

    1. 在搜索框输入任意一种形式:字符(A)、十进制码值(65)、两位十六进制(4A)或控制符缩写(LF)。
    2. 表格实时过滤;命中唯一码位时,上方给出该字符的四种进制表示与中文含义。
    3. 按需查看八进制(Unix 权限与老式转义,如反斜杠 101 表示 A)与二进制(观察单个比特位)。
    4. 想确认某个码位是否可打印,对照 32~126 区间即可,区间外多为控制字符。

    计算原理与示例

    怎么查询

    在搜索框输入任意一种形式即可:单个字符(A)、十进制码值(65)、两位十六进制(4A)、或控制字符缩写(LF)。表格会实时过滤,命中唯一码位时上方会列出该字符的完整编码信息。

    检索的优先级

    检索按固定优先级判定:单个可打印字符最优先,其次是 1~3 位纯数字按十进制解析,再次是含字母的两位按十六进制解析,最后才是控制字符缩写的前缀匹配。因此输入 65 得到的是字符 A,而不是十六进制 0x65。

    四种进制怎么用

    十进制用于日常查阅与编程赋值,十六进制是调试内存与协议报文时最常用的形式,八进制常见于 Unix 文件权限与老式转义写法(如 \101 表示 A),二进制则便于观察单个比特位。

    控制字符是什么

    0~31 与 127 是不可见字符,用来控制设备行为而不是显示图形:LF(10)换行、CR(13)回车、HT(9)水平制表符、BEL(7)响铃。它们统称控制字符,表格中按标准缩写与中文含义列出。

    代码示例

    JavaScript 取字符码位与还原

    // 字符 → 码位
    "A".charCodeAt(0);         // 65
    "A".codePointAt(0);        // 65
    
    // 码位 → 字符
    String.fromCharCode(65);   // "A"
    String.fromCharCode(0x4a); // "J"
    
    // 按 UTF-8 看字节(中文占多字节)
    new TextEncoder().encode("中"); // Uint8Array(3) [228, 184, 173]

    Shell 命令行查看码位

    # 字符 → 十六进制码位
    printf "%x\n" "'A"        # 41
    
    # 八进制转义字符(101 八进制 = 65 = A)
    printf "\101\n"
    
    # 查看不可见字符(换行、制表)
    printf "a\tb\n" | cat -A

    常见问题

    为什么只收录到 127,128~255 呢?

    0~127 是标准 ASCII,各系统解释一致。128~255 属于扩展区,其含义取决于具体代码页:Windows-1252、ISO-8859-1、GBK 对同一码值的解释完全不同,直接列一张表反而会误导。需要查询这类字符请使用「编码转换」工具。

    大写字母 A 的 ASCII 码是多少?

    十进制 65,也就是十六进制 0x41、八进制 101、二进制 01000001。大写字母 A~Z 连续排列为 65~90,小写 a~z 为 97~122,数字 0~9 为 48~57。

    换行和回车有什么区别?

    回车 CR(13)源自打字机把字车推回行首的动作,换行 LF(10)则是把纸卷上移一行。Unix 与 Linux 只用 LF 表示换行,Windows 用 CR+LF 两个字符,老式 macOS 曾只用 CR——这也是跨平台文本文件出现多余 ^M 的原因。

    中文有 ASCII 码吗?

    没有。ASCII 只有 128 个码位,容不下汉字,中文需要使用 GBK、GB18030 或 UTF-8 等多字节编码,一个汉字通常占 2~3 个字节。查看中文的字节值时,可以在「编码转换」工具里以十六进制查看。

    空格算可打印字符吗?

    空格(32)是可打印字符的一种,但它不显示任何图形,所以本工具把它单独标为「空白」并在字符列显示为「空格」,避免看起来像数据缺失。

    输入 41 查出来是右括号,为什么不是 A?

    因为检索优先按十进制解析,41 是右括号「)」的十进制码值;A 的十六进制 0x41 需要输入含字母的 4A 才会走十六进制分支。这样约定是因为纯数字输入中,十进制远比十六进制常见。

    控制字符现在还有用吗?

    仍然在用,而且很关键。终端里用 ESC(27)开头的转义序列控制颜色与光标,串口协议用 STX/ETX 标记帧边界,DEL(127)在早期纸带时代用于删除打错的字符。编程时最常打交道的还是 LF、CR、HT 这几个。

    为什么查不到 emoji 或中文字符的编码?

    它们不在标准 ASCII 范围内。emoji 位于 Unicode 的 U+1F300 一带,常用汉字位于 U+4E00~U+9FFF,码位都远大于 127。输入这类字符时本工具会提示超出范围,并引导使用「编码转换」工具查看其 UTF-8 字节。

    延伸阅读

    来自本站原创文章,讲清这个工具背后的算法与口径。