. d( p* Q4 A+ _( s8 C' k4 c# V3 I8 s. w9 a7 E/ S: ]4 S+ P
到网上搜索一本电子图书,你可能会发现,有的图书是以一种CHM格式的文档类型提供的。但是,当你打开下载的这种图书时,有时候发现只能看到目录,下边的正文内容要么是显示错误信息,要么是显示空白。你再次下载一次,情况还是如此,于是你怀疑人家提供的文件有问题。但当你把这个文件拷贝到另一个系统或另一种设备上阅读时,你又发现阅读正常。于是你又认为自己先前的认识是错误的。 # l+ N) P+ D) V5 k) [) u. M j* f) Y+ r5 P7 v
% A5 A f& C9 u x- @, u( @* d M- z
那么,问题到底出在哪里呢? % Z0 r' \, e# {+ T" y: W1 g" c 3 `9 `9 z) M0 _* ]9 ? 笔者经过多次试验和上网求证,得出几种普遍的原因和解决方案,列于下供大家参考。 6 J9 z4 C u- H! n' C D# ^ 6 G1 U6 L, u1 } \. n& C一、文件名不当惹的祸2 R0 ^+ u6 L6 y- a7 Q y3 ~
当CHM文件的路径(文件夹名和文件名)中含有“#”“%”等特殊字符时,CHM文件能够打开,甚至可以看到导航栏,但就是无法显示其正文内容。 3 h" }6 W( a& K% ~, S( h ; Q( l& l# }1 T1 x; r; O 例如,我们有一本文件名为“”的CHM电子书。6 e, m' Q/ x7 C
* I; v! ?1 ?5 p0 }9 c2 ?0 F" M
双击电子书可以正常显示文件内容。# {- L. E0 N+ ^, c/ m8 J! z
+ d, ?! f3 t7 {0 R: }2 i- X7 @
但是,当我们在文件名中加一个“#”号 / p( R" u% q5 `2 J) i( a. X! z( p9 V6 b- u$ q- c1 m* p1 d+ q/ z# O
再双击这个文件打开试试,导航栏还在,但内容看不见了,显示为一片空白。* T. k: G3 J7 ^4 P/ m: Y" t6 |
! }* Q6 z8 X! _1 E- U
解决办法:非常简单,查看你的电子书文件名中有无“#”“%”等特殊字符,移除路径中的特殊字符即可。 Y0 Y; z9 ^! ]; H0 h* i) o$ h) |$ @; ?: ~
◆ 小提示:有时候如果CHM文件名或文件所在路径中有中文,也可能会打不开,改成英文字符试验一下。 8 C# |& U: o) q9 n- h% t9 f+ H8 n& W3 Z, C0 ^/ C
, M! t3 F- N5 F3 W: Y/ v& o: B* m二、系统协议限定了你. `( E1 e* x" z* u% ?
" @4 _9 m- l q9 H# p# S
安装微软的安全更新896358或890175 后,该补丁对CHM的itss协议做了限制。有的CHM使用了该协议,所以导致CHM无法显示。例如,我们下载的CHM就常会出现这种情况。 1 T4 T9 X, [1 Z 例如,我下载了一本名为“《人民战争胜利万岁》.CHM”的电子书,双击后目录显示正常,但内容显示“已取消到该网页的导航”错误信息,不能显示内; ^0 h+ J$ y' P c
可用如下方法解决:) N3 x5 m$ C& @9 ]& R
右键单击该CHM文件,然后单击“属性”,单击“解除锁定”! u5 L5 h8 [4 c% B8 M/ E/ J$ h
% v9 a3 B, N& D1 a9 n6 E# y
双击此CHM文件就可以打开此文件了。6 X# \# k+ i( W2 c2 \
; V# v2 [) T$ a8 ~" |. A8 Z
◆小提示:在某些CHM文件中可能会使用到InfoTech协议,而它包含3种协议:ms-its 、its、mkmsitstore 。利用这些协议,恶意攻击者或者恶意代码将可能导致帮助产生溢出漏洞,从而控制计算机。而MS最新公布的安全更新MS05-026 KB896358修正了这一情况,并屏蔽了远程链接,这就导致了使用了远程链接的一些CHM页面开启失败。 % R4 e* G: Z, t; [9 ` 4 A8 W0 J. S& Y' C0 Y3 e& s* \- ?$ Z4 A6 ?5 o) F
三、去除警告正常阅读- h" U# z. F9 e3 A/ |$ W
) B# K& @' C: q+ t0 c" p0 i2 U 双击CHM 文件,随后如果显示“打开文件 - 安全警告”对话框,单击清除“打开此文件前始终询问”复选框。单击“打开”按钮。) v7 o. L1 ^6 _5 j
◆小知识:设计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%,也就是说压缩没有什么效果。3 K+ q- S9 |8 T( _" e w