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 ...
随机推荐
- Centos 安装 MySQL-python
更新yum yum update yum install mysql-devel yum install gcc yum install python-devel pip install MySQL- ...
- 【POJ2154】Color Pólya定理+欧拉函数
[POJ2154]Color 题意:求用$n$种颜色染$n$个珠子的项链的方案数.在旋转后相同的方案算作一种.答案对$P$取模. 询问次数$\le 3500$,$n\le 10^9,P\le 3000 ...
- Android aapt使用小结
Android打包成Apk后,其实是一个压缩文件,我们用winrar打开也能看到里面的文件结构.还能看到AndroidManifest.但是里面的内容有点问题. 不知道是因为加密还是Android就是 ...
- A simple guide to 9-patch for Android UI
extends:http://radleymarx.com/blog/simple-guide-to-9-patch/ While I was working on my first Android ...
- thinkCMF----路由跳转
使用ThinkCMF的时候,在模板界面上,可能会用到一些自定义路由,ThinkCMF路由的基本配置与用法: ThinkCMF自带有路由美化的功能: 这种路由都是当你创建栏目或创建文章的时候,自动生成的 ...
- 8.17 一个博客demo
2018-8-17 18:13:27 明天周末准备整理一下看看我的博客!!! 说一下思路 1.先搭建框架 1.1 大体分成两块div 左右两部分 <div class="left&qu ...
- php下载文件,解压文件,读取并写入新文件
以下代码都是本人在工作中遇到的问题,并完成的具体代码和注释,不多说,直接上代码: <?php //组织链接 $dataurl = "http://118.194.2 ...
- 国外很有多优秀的HTML5前端开发框架
国外很有多优秀的HTML5前端开发框架 相信大家都耳熟能详:JQuery Mobile,Twitter Bootstrap, Schena Touch, BackBone等等. 同样,也存在很多国内 ...
- win10 64bit安装redis及redis desktop manager的方法
下载地址: MSOpenTech/redis——Github 下载后随便解压到一个地方 在 命令行 启动服务端 命令内容如下: redis-server.exe redis.windows.conf ...
- 为什么面试要问 hashmap 的原理
我们都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深.这题经常出现在高级或中高级面试中.投资银行更喜欢问这个问题 ...