CHM无法正常显示的问题
很喜欢看CHM电子书,感觉篇幅不是很长,而且可以索引;但是昨天遇到这个问题:
打开文件的时候发现:
很喜欢看CHM电子书,感觉篇幅不是很长,而且可以索引;但是昨天遇到这个问题:
打开文件的时候发现:

意外发现当把文件压缩起来,居然可以打开查看:

怪事;
网上了解了一些内容,下面摘抄了部分内容:
====================================================================================================
.CHM格式(下文中省略前缀的dot)是上世纪90年代微软搞出来的,设计的初衷是用来做帮助文档。上图中可以看到,其官方全称是Compiled HTML Help file,即“已编译的HTML帮助文件”,也就是说,CHM文件实质上是一堆HTML网页文件打包。大家看见HTML可能以为CHM是一个开放的格式,很可惜不是,他们并没有将其做成PDF、DjVu那样的通用格式。因此结果是只有微软自家的阅读器可以查看(现在被移值到了其它平台,这是后话)。
除了专门的阅读器以外,CHM也有很多配套工具,比如制作工具、反编译器、转换软件等等。人们发现因为CHM这东西保留了HTML的特性,制作简便效果好,什么图片啊CSS啊脚本啊都能保留下来,所以慢慢地就流行开了。再后来,CHM格式被研究得差不多了,虽然官方没有公布详细规格书,但有人公布了非官方的逆向成果,因此配套工具就更齐全了,CHM就更流行了,甚至非Windows非x86的手持设备都可以阅读CHM了,- -b
尽管微软2002年就宣布不再进一步开发CHM格式(为了推他们的XPS),但由于CHM的群众基础太好(国内尤甚),这些年风头丝毫不减,情况基本与Windows XP类似,微软表示压力很大……好了,下面进入正题:
1、系统把CHM默认关联到%WINDIR%\hh.exe,也就是Windows系统文件夹中的hh.exe,其属性如下图所示。这玩意儿相当于阅读器,就像HTML有web browser,PDF有Adobe Reader一样。

正常时双击CHM文件即可打开浏览,如下图所示:

问题:
2、问题描述:当CHM文件的路径(文件夹名和文件名)中含有#、%等特殊字符时,CHM文件能够打开,甚至可以看到导航栏,但就是无法显示其正文内容。
实践一下,在文件名中加一个#就打不开;
问题剖析:浏览一个CHM文件,实际上至少分为两个过程:
(1)首先,这个操作(双击文件图标)作为一个文件请求,在shell、文件系统、注册表等的作用之后,把文件的全路径作为一个参数传递给hh.exe并执行。这个过程只牵涉到文件系统,而#、%等字符在文件系统中不属于保留字符,没有特殊含义,因此这个过程完全正常。也就是,hh.exe能够得到这个CHM并开始解析其内部。
(2)真正的问题出在解析的时候。前面已经提到,CHM是一堆HTML的集合,这个集合是有组织的,而且还进行了LZX压缩。hh.exe解析这个CHM,并尝试呈现这堆HTML中被设置成首页的那一个。那么,hh.exe如何定位这个HTML?答案是URL,哈哈。我们来试试,右键点击属性,即可看到:
==========================================================================================================================
总结:原来打开需要编译哦,中文和非法字符在编译过程很容易出错;所以查看了自己的那个路径,发现确实包含中文和非法字符了,所以剪切到其他不含中文和非法字符的地方,终于打开了~~~~~~~
CHM无法正常显示的问题的更多相关文章
- 解决下载的CHM文件无法显示网页问题
问题症状:打开CHM文件,左边目录齐全,可右边边框里却是无法显示网页. 解决方法:方法一:修改注册表1)新建一个文本文件2)添加如下内容:REGEDIT4[HKEY_LOCAL_MACHINE\SOF ...
- win7及以上系统打开chm空白或显示"无法打开"的2个解决方案
1:在文件上右键单击属性.选择解锁. 2:确保文件路径中没有特殊字符.比如"#".如果路径中存在特殊字符,chm文件可能找不到路径而无法显示.如 d:\资料\c#\***.chm. ...
- 用微软官方的 HTML Help Workshop制作的CHM文件不显示图片解决办法
制作CHM文档,方便小巧还易于查看,用处自不必多说了,最近想把这个季度所学习的内容全部制作成CHM格式文档,给自己后续用来温故而知新,同时也可以做为后起之秀避坑法宝.但是在生成CHM文档之后发现有些地 ...
- 问题-CHM文件不显示
原问题:http://bbs.csdn.net/topics/370230310 问题描述: http://download.csdn.net/download/wybneu/3582721 我从这个 ...
- 打开 chm 帮助文件显示空白及解决方法
有个很奇葩的解决方法:把 chm 文件用压缩软件压缩,然后用压缩软打开此压缩包,直接双击压缩包里面的 chm 文件 这虽然解决了问题,但是这不科学…… 分析:直接打开压缩包里面的文件,压缩包的文件是临 ...
- 【chm】【windows】win7下chm打开不显示内容
修改chm属性里面,‘解除锁定’即可.点击chm文件,右键选择属性,点击最下方的解除锁定,保存,退出重新打开即可.
- Delphi 使用CHM文件制作系统帮助文档(上下文感知帮助的制作)
一.基础知识简介 使用帮助提示窗口或状态栏只能提供简单.单一的帮助,无法对某一模块或应用程序整体提供系统的 帮助,因此运行Windows应用程序,需要帮助时一般都可以通过执行帮助菜单获 ...
- C# 如何生成CHM帮助文件
原文:C# 如何生成CHM帮助文件 前一段时间应公司要求,让我开发一个数据库字段信息CHM帮助文件生成软件.结果当时我就二了,这个东西我只用过,不知道咋做啊.没想到老大很随意说一句:"没事, ...
- 解决150%DPI下Photoshop不能显示成合适大小的问题
Adobe官方这里一直不给力,只能靠自己动手了. 和解决CHM高分屏显示的步骤差不多: Ctril+R,输入regedit编辑注册表. 进入到 HKEY_LOCAL_MACHINE > SOFT ...
随机推荐
- [右键]如何添加Sublime为右键菜单
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\Open with Sublime Text\command] @=&q ...
- CentOS安装php及其扩展
列出所有的可安装的软件包 yum list | grep php56w* | grep redis 安装php及其扩展 yum install -y php56w php56w-mysql php5 ...
- 7.22 python线程(3)
2018-7-22 10:28:29 回来啦! 6.条件 # !/usr/bin/env python # !--*--coding:utf-8 --*-- # !@Time :2018/7/20 1 ...
- nginx中location、rewrite用法总结
一.location用法总结 location可以把不同方式的请求,定位到不同的处理方式上. 1.location的用法 location ~* /js/.*/\.js 以 = 开头,表示精确匹配:如 ...
- ABP之应用服务(1)
在一个理想的层级项目中,展现层是不能直接访问领域对象的,那么展现层如何获取到自己需要的数据呢?也就是今天的主角-Application层,它的职责就是为展现层服务,它通过仓储获取到相应的数据,然后将数 ...
- 2018-2019-2 20165330《网络对抗技术》Exp6 信息搜集与漏洞扫描
目录 基础问题 相关知识 实验目的 实验内容 实验步骤 实验总结与体会 实验目的 掌握信息搜集的最基础技能与常用工具的使用方法. 返回目录 实验内容 各种搜索技巧的应用 使用搜索引擎 搜索网址目录结构 ...
- FaceBook开源的词向量计算框架
fasttext是个好东西,是由facebook在2016年推出的一个训练词向量的模型.相比于之前Google的word2vec,fasttext可以解决out of vocabulary的问题.fa ...
- POJ_3616_Milking Time
Milking Time Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10841 Accepted: 4564 Des ...
- numpy中np.nan(pandas中NAN)
转自:http://blog.csdn.net/xiaodongxiexie/article/details/54352889 在处理数据时遇到NAN值的几率还是比较大的,有的时候需要对数据值是否为n ...
- PL/SQL类的应用
类的定义 直接声明字段类型‘VARCHAR2或NUMBER等’ declare type kingsql_tp1 is record(empno number,ename varchar2(100)) ...