使用方法
- 选择“编码”把文本转换为十进制数,或选择“解码”把数字还原为文本。
- 输入或粘贴内容,也可以打开文件,结果会随输入实时更新。
- 为数字选择分隔符:空格、逗号或换行。
- 复制结果,或将结果下载为文件。
十进制字节值与 ASCII 码
计算机中的每个字符都以一个或多个字节存储,而一个字节就是 0 到 255 之间的数字。本工具把这些数字用普通的十进制写出来。对于英文文本,得到的就是熟悉的 ASCII 码:大写字母是 65 到 90,小写字母是 97 到 122,数字 0 到 9 是 48 到 57,空格是 32。32 以下是控制字符,例如换行符是 10,回车符是 13。
结果与 Python 中 ord() 或 JavaScript 中读取 Uint8Array 得到的数值相同,很适合用来找出字符串里看不见的字符、换行符或字节顺序标记(BOM)。
逐字节转换,而不是一个大数
转换是逐字节进行的:两个字母会得到两个数字,而不是一个整数。ASCII 文本中不会出现大于 127 的值;在 UTF-8 中,这类字节两到四个一组,共同组成一个字符,所以一个带重音的字母或一个汉字会产生多个数字。如果在“文本编码”中选择 GBK,每个汉字对应两个数字。西欧文字可以选择 ISO-8859-1,它的每个字节值都等于该字符的 Unicode 码位;也可以选择 Windows-1252。
如果要把单个数字换成其他进制,例如把 255 转换为十六进制,请使用进制转换器。想用其他形式查看同样的字节,可以试试十六进制或二进制。
在代码中获取十进制字节值
# Python
list('Hi'.encode()) # [72, 105]
bytes([72, 105]).decode() # 'Hi'
// JavaScript
[...new TextEncoder().encode('Hi')] // [72, 105]
new TextDecoder().decode(new Uint8Array([72, 105])) // 'Hi'
编码规格
| 字母表 | 0-9 |
|---|---|
| 输出体积 | 每字节 1 到 3 位数字,另加分隔符 |
| 填充 | 无 |
| 标准 | 十进制字节值 |
| 区分大小写 | 否 |
编码示例
| 输入 (UTF-8) | 输出 |
|---|---|
Hello, World! | 72 101 108 108 111 44 32 87 111 114 108 100 33 |
Base64.is | 66 97 115 101 54 52 46 105 115 |
你好 | 228 189 160 229 165 189 |
常见问题
字母 A 的 ASCII 码是多少?
大写 A 是 65,小写 a 是 97,在 ASCII 和 UTF-8 中都一样。后面的字母依次加一,所以 Z 是 90,z 是 122。
没有分隔符的十进制数字能解码吗?
不能。像 72105 这样的数字串可以有多种切分方式,所以解码器要求用空格、逗号、分号或换行把数字隔开。数字前面可以带前导零。
为什么大于 255 的数字会报错?
一个字节只能表示 0 到 255。更大的数字(例如欧元符号的 Unicode 码位 8364)不是字节值。请直接输入字符本身再编码,就能看到它在 UTF-8 等编码下的字节。
为什么一个汉字会变成好几个数字?
UTF-8 用 3 个字节存储常用汉字,每个字节都会变成一个数字。如果希望每个汉字只对应两个数字,可以把“文本编码”切换为 GBK。