Hex Viewer

在浏览器中查看任意文件的原始字节——偏移量、十六进制和 ASCII。不会上传。

打开文件

选择任意文件。文件在你的设备上读取。

看看文件里到底有什么

这个工具可以打开任意文件——图片、文档、压缩包,或者你无法识别的文件——并以十六进制转储的形式展示它的原始字节:偏移量列、十六进制字节,以及对应的 ASCII 表示。文件在你的设备上读取,这在你不想把某个文件发送到任何地方、或者不确定用它对应的程序打开是否安全时会很有用。

它只能查看,不能编辑。这里没有编辑、保存或转换功能——目的只是查看,不改动任何内容。即使是很大的文件也能保持流畅,因为只有当前屏幕上的这几行会被渲染;滚动一个有几百万行的文件,并不意味着页面上要有几百万个元素。

为什么你的文件不会离开设备

这里的隐私来自结构,而不是承诺。没有“上传”这一步,是因为根本没有可供上传的服务器:

  • 文件的读取完全在你的浏览器内完成。
  • 页面以静态文件的形式分发,不会发出携带你数据的请求。
  • 源代码公开,任何人都可以查看(MIT)。
  • 可以离线使用——既然不依赖服务器,离线自然也能用。

想自己确认的话,打开文件时看看浏览器的网络(Network)面板——没有任何请求携带文件内容。 查看源代码。

使用方法

  1. 打开文件

    点击选择任意文件,或把它拖到页面任意位置。不论什么格式,都会在本地读取。

  2. 查看转储内容

    每一行显示偏移量、十六进制字节,以及对应的 ASCII 表示。可以切换每行显示的字节数(8、16 或 32),以适应不同的文件。

  3. 跳转或搜索

    可以直接跳转到某个字节偏移量,也可以搜索一段十六进制字节或一段文本。解码文本面板还能以 ASCII、UTF-8 或 Latin-1 显示当前屏幕上的字节。

常见问题

我的文件会被上传到某个地方吗?

不会。文件的读取完全在你的浏览器内完成。没有服务器端处理,所以文件内容没有离开设备的途径。源代码公开,你可以在浏览器的网络(Network)面板里确认这一点。

它能打开哪些类型的文件?

任意文件都可以。这里没有类型限制列表——十六进制查看器的意义正是查看那些你不确定类型、或者不太信任的文件。如果文件非常大(几百 MB 级别),页面会提示加载和搜索可能需要一些时间,并占用较多内存。

它能识别文件类型吗?

它会检查文件开头的字节,与 PNG、JPEG、PDF、ZIP、GZIP 这几种常见签名做比对,匹配上就会显示一个推测结果。这只是一个快速的初步判断,不是完整的文件识别功能:没有匹配到这五种签名,并不代表文件有问题,只是这项快速检查没能识别出来而已。

可以编辑文件吗?

不可以。这是一个只读的字节查看工具,不会修改、保存或导出任何内容。

搜索是怎么工作的?

可以在十六进制搜索和文本搜索之间切换。十六进制模式会查找你输入的十六进制字节对(例如 89 50 4e 47);文本模式会把你输入的内容按 UTF-8 编码后再查找对应的字节序列,这也覆盖了普通的 ASCII 文本。“上一个”“下一个”在到达文件末尾或开头后会从另一端继续查找。

解码文本面板是做什么用的?

十六进制旁边的 ASCII 列是逐字节显示的,所以无法正确显示由多个字节组成的字符。解码文本面板会把当前屏幕上的字节当作一段连续的内容,按你选择的编码(ASCII、UTF-8 或 Latin-1)来解码——这样一来,如果文件的这部分确实是该编码下的文本,带重音符号的字母、中文字符等多字节字符就能正确显示出来。

可以离线使用吗?

可以。它是 PWA,第一次访问后会被缓存,没有网络也能打开使用。你也可以把它添加到主屏幕。

文件大小有限制吗?

没有硬性限制,但打开文件后,其内容会一次性读入内存,所以实际上限取决于你设备的内存。超过几百 MB 的文件,页面会提示操作可能需要更长时间,并占用更多内存。