文本转二进制

把文本转换为二进制、十六进制、八进制或十进制,并可反向解码。基于 UTF-8,支持自定义分隔符与补零,全部在浏览器本地完成。

在文本与二进制、十六进制、八进制、十进制之间双向转换。 两侧都可编辑,既能编码文本,也能粘贴编码串进行解码。编码基于 UTF-8 字节,因此带重音的字母、中日韩文字和 emoji 都能完整往返。

文本是如何变成字节的

字符不等于字节

字符是抽象概念,字节是 8 个比特的存储单位。两者之间的转换需要一种编码。本工具使用 UTF-8,它支撑着全球 98% 以上的网页。在 UTF-8 中,ASCII 范围内的 A-Z、a-z、0-9 和常见标点各占一个字节,因此 A01000001。带重音的拉丁字母和希腊字母占两个字节,多数中日韩文字占三个字节,emoji 占四个字节。

这为什么影响往返转换

早期的文本转二进制工具直接调用 charCodeAt 并截断为 8 位。这对纯 ASCII 有效,但会悄悄破坏其他所有内容,é 转回来会变成另一个字符或替换符号。由于本转换器编码的是真实的 UTF-8 字节,包含中文和 emoji 的字符串可以原样解码回来。

如何选择进制

  • 二进制展示原始比特模式,适合讲解编码原理或调试位级协议。
  • 十六进制是实用的默认选项。每字节两位十六进制数字,字节边界一目了然,这也是所有十六进制编辑器和抓包工具都用它的原因。
  • 八进制每三个比特一组,主要出现在 Unix 权限和部分 C 语言转义序列中。
  • 十进制最便于口头朗读,但完全掩盖了比特结构。

分隔符与补零

补零让每个字节宽度一致——二进制 8 位、十六进制 2 位——即使值之间没有分隔符也能可靠切分。如果关闭补零,务必保留分隔符,否则 110 会连在一起,结果无法唯一解码。解码时可以混用空格、逗号和换行。

开源说明:使用浏览器内置的 TextEncoder 与 TextDecoder API,未使用第三方库。

常见问题

为什么一个汉字变成了三组八位?
UTF-8 把多数中日韩文字编码为三个字节,每个字节对应一组八位。这是正确行为,不是错误。
没有分隔符的二进制能解码吗?
可以,前提是编码时做了补零。解码器在找不到分隔符时会退回到定宽切分——二进制每 8 个字符一字节,十六进制每 2 个。
用的是 ASCII 还是 UTF-8?
UTF-8。在纯 ASCII 范围内两者完全相同,因此英文文本看起来一样,但 UTF-8 还能正确处理其他所有字符。
为什么解码时报错?
每一组都必须能在所选进制下解析为 0 到 255 之间的值。出现 256、二进制模式下混入字母,或选错了进制,都会触发该错误。
这和 Base64 一样吗?
不一样。Base64 把三个字节压缩成四个可打印字符以节省体积。本工具按所选进制单独呈现每个字节,冗长但便于人类阅读。
文本会被发送出去吗?
不会。编码和解码都使用浏览器内置的 TextEncoder 与 TextDecoder,全程在本机完成。