Tiny Online Tools logoTiny Online Toolssearch搜索工具…grid_view全部工具
首页chevron_right文档工具chevron_rightCHM 查看器CHM 查看器

CHM 查看器

打开微软的老式编译 HTML 帮助文件,浏览其目录树,并在浏览器中阅读其中的页面。

upload_file

点击浏览 或将文件拖放到这里

CHM

接受格式:.chm

相似工具

CHM 提取器

CHM 提取器

把编译 HTML 帮助文件拆成页面、样式表和图片,打包为保留原始目录结构的 ZIP。

MHTML / MHT 查看器

MHTML / MHT 查看器

打开保存为单个 MHT 或 MHTML 文件的网页,连同其图片和样式表一起还原显示。

XPS / OXPS 查看器

XPS / OXPS 查看器

打开微软的 XPS 和 OXPS 固定版式文档并逐页阅读,无需任何 Windows 组件。

MHTML 提取器

MHTML 提取器

把 MHT 存档拆成 HTML、图片、样式表和其他资源,并下载为一个仍能在浏览器中打开的文件夹。

WAV 转 MP3 转换器

WAV 转 MP3 转换器

直接在浏览器中将 WAV 音频文件转换为 MP3。比特率可从 64 调整至 320 kbps。完全私密。

合并 PDF

合并 PDF

在浏览器中快速安全地将多个 PDF 文件合并为一个文档。

PDF 转 JPG

PDF 转 JPG

将 PDF 页面转换为高质量 JPG 图片。

apps

更多工具

浏览我们完整的免费在线工具集合。

CHM 究竟是什么

.chm 是一个小型文件系统,微软称之为 ITSS:一个文件头、一份条目目录,以及一到两个内容区段——区段 0 原样存储,区段 1 用 LZX 压缩。里面装的是普通的 HTML 页面、样式表和图片,另外还有几个以 #$ 开头的元数据流。

其中两个流在这里很关键。#SYSTEM 记录了帮助文件的标题默认主题——查看器应当最先打开的那一页。没有它,阅读器只能靠猜,而按字母顺序猜,通常会猜到一份样式表上。.hhc 文件则是目录树,写成 HTML 站点地图的形式:嵌套的 <UL><LI>,里面放着 <OBJECT type="text/sitemap"> 条目。

真实的 .hhc 文件以格式混乱著称——到处是未闭合的列表项——所以这里用浏览器自带的 HTML 解析器来解析,它对这类错误的容错方式与当年的帮助查看器一致。换成 XML 解析器,只会直接拒绝这个文件。

阅读一个页面

每个页面的样式表和图片都会相对该页面在帮助文件中的路径进行解析,并替换为 CHM 自身的字节。主题之间的链接可以正常工作:页面显示在一个同源但没有 allow-scripts 的 iframe 中,因此其中任何内容都无法执行,而工具本身可以拦截点击并跳转到链接的主题。指向公网的链接不会被跟随,注入的 default-src 'none' 策略也保证它不会被意外请求。

关于压缩,实话实说

本工具会报告该文件使用的压缩方式:LZX,以及它的窗口大小和重置块数量;如果所有内容都在存储区段,则显示为无压缩。

这里的 LZX 解码器是依据 [MS-PATCH] 规范和 libmspack 的 lzxd.c 编写的。它的位流读取、规范 Huffman 解码、未压缩块和 x86 过滤器都有单元测试覆盖。但它的 verbatim 和 aligned 块解码从未在微软自家压缩器产生的文件上运行过,因为当时没有可离线测试的语料。

因此,如果某个页面解压失败,本工具会显示具体错误并拒绝渲染任何内容。它不会把恢复出的字节放到屏幕上。看起来像页面的乱码比一次诚实的失败更糟,因为你分辨不出来。如果真实的帮助文件在这里失败了,值得反馈——那是我们的问题。

还可以看到

每个页面的大小及其所在区段、生成该文件的编译器,以及 ITSS 目录的细节。如果想把文件取出来而不是阅读,请使用 CHM 提取器。

隐私

帮助文件在你的浏览器中打开,绝不上传。