跳到正文
BinaryTranslator.app

二进制转文字

粘贴二进制代码,立即翻译成可读的文字。加不加空格都可以,哪一组有错会直接指出来。

试试示例:

二进制转文字的原理

二进制转文字时,每次读取 8 位。8 个比特组成一个字节,表示 0 到 255 之间的一个数字,每个数字代表一个字符。例如01001000 等于 72,而 72 是大写字母 H 的编码。

数字和字符之间的对应关系由字符编码决定。英文用的是 ASCII,A 是 65,a 是 97;中文、emoji 以及其他语言用的是 UTF-8,一个字符可能占 2、3 或 4 个字节,常用汉字一般占 3 个字节。本工具按 UTF-8 解码,而 UTF-8 本身兼容 ASCII,所以中英文都不需要额外设置。

转换在你的浏览器里实时完成,内容不会发送到任何服务器,所以解码私密信息也很安全;页面加载完成后,断网也能使用。

支持哪些二进制格式?

二进制的写法五花八门,下面这些格式都可以直接粘贴,不用事先整理:

  • 用空格分隔字节(最常见):01001000 01101001。
  • 连成一整串,会从左往右按 8 位切分:0100100001101001。
  • 用逗号、分号、制表符或换行分隔字节。
  • 7 位一组(省略了开头的 0):1001000 1101001 照样能读出 “Hi”。
  • 带 0b 前缀,这是很多编程语言里的写法。
  • UTF-8 多字节字符,中文、emoji 等都能还原成正确的字符。

如果你手上的是十六进制、十进制或 Base64,请使用能自动识别格式的二进制解码器。

二进制转文字示例

下表是几段二进制以及它们对应的文字。点击上方的示例,或复制表中任意一行粘贴到翻译器里,就能看到每个字节的拆解。

二进制与对应的文字
二进制文字
11100100 10111101 10100000 11100101 10100101 10111101你好
11101000 10110000 10100010 11101000 10110000 10100010谢谢
01001000 01100101 01101100 01101100 01101111Hello
01000111 01101111 01101111 01100100 00100000 01101100 01110101 01100011 01101011 00100001Good luck!

注意「你好」两个字用了 6 个字节:每个汉字 3 个字节,合计 48 位。二进制本身没有语言之分,原文是中文就解出中文,是英文就解出英文。

二进制无法转换怎么办?

遇到无法解码的部分时,翻译器会列出出错的分组,其余部分照常转换。常见原因和解决办法如下:

  • 某一组位数不对。9 位一组通常是两个字节连在了一起,或者某位数字重复了。找到提示中的那一组,拆开或删掉多余的位即可。
  • 混入了 0 和 1 以外的字符。手动录入时,字母 O、字母 l 或句点很容易混进来,把它们改成 0 或 1。
  • 结果里出现 �。说明字节不是有效的 UTF-8:某个汉字的字节缺了一个,或者这段二进制本来就不是文字。
  • 结果是一堆乱码。连续长串中前面多了或少了一位,后面所有字节都会错位。在字节之间加上空格,就能找出出错的位置。

需要反向转换?用文字转二进制工具,可以把任意文字变成二进制代码。

常见问题

怎么把二进制转换成文字?

把二进制粘贴到上方输入框,文字会立即显示。每 8 位一组是一个字节,对应一个字符,例如 01001000 01100101 01101100 01101100 01101111 就是 "Hello"。

二进制之间一定要加空格吗?

不需要。空格、逗号、换行都可以,连成一整串的 0 和 1 也没问题,会从左往右按 8 位切分。

每组是 7 位而不是 8 位怎么办?

7 位一组是省略了开头 0 的 7 位 ASCII。无论分开写还是连在一起,翻译器都能正确读取。

结果里为什么会出现 � 符号?

说明这些字节组不成有效的 UTF-8 文字。通常是少了某个字节、某一组写错了,或者这段二进制本来就不是文字,比如是图片的一部分。