ASCII 与 Unicode 码位

显示每个字符的码位,或把十进制、十六进制码位还原成文字。

这是码位,不是十六进制字节

ASCII 是 0 到 127。一个汉字不是一个 ASCII 字节,而是一个 Unicode 码位;在 UTF-8 里这个码位要占好几个字节。这一页每个字符打一个数,十进制或十六进制都可以。它不输出 UTF-8 的字节串。看字节用 字符串转字节 或 文本转二进制。

怎么用

  1. 粘贴文字,或用空格、逗号、换行分开的码。
  2. 选「文字转码位」或「码位转文字」,再选十进制或十六进制。
  3. 示例「AB」的十进制是 65 66,十六进制是 41 42。
  4. 有一个码不是所选进制的数字,或不是合法字符码,整段都会报错,不会跳过坏的那一个。

你看到的是哪个数

65 是字符 A,20013 是「中」。这两个都不是 UTF-8 字节。「中」的 UTF-8 字节是 E4 B8 AD。如果另一个工具对一个汉字给出三组十六进制,它在显示字节,和这一页对不上,要换工具。这里的十六进制不加 0x,也不加 U+。从码位还原文字时,空格、逗号和换行是分隔符,不会被编进结果。

什么时候用

  • 看规范或报错里的十进制码位。
  • 两个字长得像的时候,确认到底是哪一个。
  • 给解析练习准备一小串码。

常见问题

为什么「中」不是 228 或 E4?

那是 UTF-8 的字节。这一页打的是码位,一个字符一个数。

一个表情变成了一个数。

那个数就是码位。一个表情可以是大于 65535 的单个码位,也可以是一串码位。每个码位各算一个数。