为什么文件名(以及路径名)里含 # 字符的 CHM 文件会不能正常打开?

来源:互联网 发布:阿里云centos安装桌面 编辑:程序博客网 时间:2021/09/29 04:30
在很多地方看到这么个情况:有人下载了个名称为诸如 C#BOOK.CHM 的文件,然后解除锁定,可是依然不能正常打开,而其它 CHM 文件则又是可正常打开的,于是推断该文件是坏的。

倘若该文件不是坏的,那么原因很简单:文件名(以及路径名)里含 # 字符。

CHM 文件实质上是对一堆文件的一个打包。打开的每一页都对应着一个 HTML 文件,其内部地址与该 CHM 路径名可复合成一个URL,比如:
C:\folder\filename.chm::/xxx/yyy.html

在 IE 地址栏输入方案 its 和 URL,比如:
its:C:\folder\filename.chm::/xxx/yyy.html

回车即可直接打开 CHM 文件中的某一页。

倘若路径名里含 # 字符,则 # 后的字符串被理解为锚,而 # 前的字符串则不足以构成有效地址,这就是不能正常打开的原因。

倘若路径名里非要含有 # 字符不可,比如:
C:\folder#1\filename.chm

这在 IE 里倒是可以解决的。把 # 都替换为 %23 即可,比如:
C:\folder%231\filename.chm

但不适用于 Windows 自带的 CHM 工具,即 hh.exe。

换一个工具,或是改名。


原创粉丝点击