CHM 帮助文件乱码解决办法


经常碰到一些 CHM 格式的帮助文档出现乱码无法阅读的情况,而且 CHM 文档不像浏览器一样,右键可以选择字符编码,非常不便。究其原因,主要就是 CHM 文档在页面中没有指定合适的字符编码所致。 CHM 的实质是 HTML 文件。一般情况下没有指定字符编码的 CHM 是调用 Internet Explorer 浏览器的字符编码设定来显示 CHM 文件的。

经常碰到一些 CHM 格式的帮助文档出现乱码无法阅读的情况,而且 CHM 文档不像浏览器一样,右键可以选择字符编码,非常不便。究其原因,主要就是 CHM 文档在页面中没有指定合适的字符编码所致。
CHM 的实质是 HTML 文件。一般情况下没有指定字符编码的 CHM 是调用 Internet Explorer 浏览器的字符编码设定来显示 CHM 文件的。
  在注册表 HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerInternational 下有 AutoDetect 和 Default_CodePage 2个键名,就是 IE 浏览器字符编码的相关设定键。

  因此,我们在简体中文的操作系统上打开简体中文的 CHM 文档出现乱码时,把 AutoDetect 设置为1就能正常显示;在简体中文的操作系统上打开繁体中文的 CHM 文档出现乱码时,先把 AutoDetect 设置为0,然后把 Default_CodePage 设置为 BIG5 的代码页 950 即可。
  简体中文Windows常用 ANSI 代码页936,在注册表二进制值是 A8 03 00 00;
  繁体中文Windows常用 ANSI 代码页950,在注册表二进制值是 B6 03 00 00;
  拉丁语系Windows常用 ANSI 代码页1252,在注册表二进制值是 E4 04 00 00。

一个正常的chm源代码常常是这样:

<HTML>
<HEAD><META http-equiv="Content-Type" content="text/html; charset=gb2312">

有些chm没有 charset 字段,所以就出问题了,比如

我安装的是英文系统

Universal Alphabet (UTF-8) utf-8 65001 E9 FD 00 00

附带解决问题的注册表脚本

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerInternational]

"Default_CodePage"=hex:a8,03,00,00

下载这个"CHM 帮助文件乱码解决办法"的注册表文件,下载后执行文件即可

点此下载

  • 你可能对这些文章感兴趣