CHM电子书 不能显示为哪般

B站影视 2024-12-10 16:30 11

摘要:到网上搜索一本电子图书,你可能会发现,有的图书是以一种CHM格式的文档类型提供的。但是,当你打开下载的这种图书时,有时候发现只能看到目录,下边的正文内容要么是显示错误信息,要么是显示空白。你再次下载一次,情况还是如此,于是你怀疑人家提供的文件有问题。但当你把这

到网上搜索一本电子图书,你可能会发现,有的图书是以一种CHM格式的文档类型提供的。但是,当你打开下载的这种图书时,有时候发现只能看到目录,下边的正文内容要么是显示错误信息,要么是显示空白。你再次下载一次,情况还是如此,于是你怀疑人家提供的文件有问题。但当你把这个文件拷贝到另一个系统或另一种设备上阅读时,你又发现阅读正常。于是你又认为自己先前的认识是错误的。

那么,问题到底出在哪里呢?

笔者经过多次试验和上网求证,得出几种普遍的原因和解决方案,列于下供大家参考。

一、文件名不当惹的祸

当CHM文件的路径(文件夹名和文件名)中含有“#”“%”等特殊字符时,CHM文件能够打开,甚至可以看到导航栏,但就是无法显示其正文内容。

例如,我们有一本文件名为“”的CHM电子书。

(图1:正常CHM文件图标)

双击电子书可以正常显示文件内容。

(图2:文件名正确时显示正确)

但是,当我们在文件名中加一个“#”号

(图3:带#号的CHM文件图标)

再双击这个文件打开试试,导航栏还在,但内容看不见了,显示为一片空白。

(图4:带#文件名无法显示内容)

解决办法:非常简单,查看你的电子书文件名中有无“#”“%”等特殊字符,移除路径中的特殊字符即可。

◆ 小提示:有时候如果CHM文件名或文件所在路径中有中文,也可能会打不开,改成英文字符试验一下。

二、系统协议限定了你

安装微软的安全更新896358或890175 后,该补丁对CHM的itss协议做了限制。有的CHM使用了该协议,所以导致CHM无法显示。例如,我们下载的CHM就常会出现这种情况。

例如,我下载了一本名为“《人民战争胜利万岁》.CHM”的电子书,双击后目录显示正常,但内容显示“已取消到该网页的导航”错误信息,不能显示内容。

(图5:解除锁定前的不正确显示结果)

可用如下方法解决:

右键单击该CHM文件,然后单击“属性”,单击“解除锁定”

(图6:解除锁定)

双击此CHM文件就可以打开此文件了。

(图7:解除锁定后已能正确显示了)

◆小提示:在某些CHM文件中可能会使用到InfoTech协议,而它包含3种协议:ms-its 、its、mk:@msitstore 。利用这些协议,恶意攻击者或者恶意代码将可能导致帮助产生溢出漏洞,从而控制计算机。而MS最新公布的安全更新MS05-026 KB896358修正了这一情况,并屏蔽了远程链接,这就导致了使用了远程链接的一些CHM页面开启失败。

三、去除警告正常阅读

双击CHM 文件,随后如果显示“打开文件 - 安全警告”对话框,单击清除“打开此文件前始终询问”复选框。单击“打开”按钮。

(图8:消除安全警告询问)

◆小知识:设计CHM的初衷是用来做帮助文档,其本质是一堆html网页文件的组合,微软给的名字是Compiled HTML Help file,即“已编译的HTML帮助文档”。Microsoft自Windows 98以来,操作系统中都自带解释器(打开CHM文件的工具),即Windows安装目录下的HH.EXE。CHM 文件可以通过官方免费提供了HTML Help Workshop 生成,它的源文件是 HTML 文件。CHM有专门的编译器、反编译器。人们发现因为CHM这东西保留了html的特性,把它拿来制作电子书实在是很好很强大,连CSS脚本、特效等都能保留下来。所以现在有很多资料采用这种格式。网络上很多电子书籍都被制作成CHM格式。CHM内部采用了微软私有的压缩算法,效率很高,所以如果对CHM文件进行压缩的话基本上压缩率会很接近100%,也就是说压缩没有什么效果。

来源:电脑爱好者

相关推荐