2 CHM格式的中文问题

前面说过:目前,Doxygen统一采用UTF-8作为输出文件的编码格式,但微软的CHM编译工具(hhc.exe)不支持UTF-8。如果直接用hhc.exe编译,中文不能正确显示。解决这个问题的思路很简单:

  • 将Doxygen输出的html文件以及CHM的项目文件(.hhp)、目录文件(.hhc)和索引文件(.hhk)全部转换到GBK编码后,再用hhc.exe编译即可。

可以用iconv对文件作编码转换。对于html文件,除了文件内容的编码转换外,还要将

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

中的“UTF-8”替换成“gb2312”。

2.1 用批处理简化操作

我写了一些批处理文件(.bat)用于简化处理过程,包括:

2.1.1 clean.bat —— 清空以前输出

@echo off
echo 清空以前输出
if exist refman.chm del /f /q refman.chm
if exist output\html del /f /q output\html\*.*
if exist output\latex del /f /q output\latex\*.*
if exist output\rtf del /f /q output\rtf\*.*
if exist output del /f /q output\*.*

2.1.2 build.bat —— 调用doxygen生成文档

@echo off
echo 生成文档
doxygen Doxyfile

2.1.3 utf82gbk.bat —— 将指定文件(支持通配符)从utf-8编码转换到gbk编码

@echo off
echo 将%1从utf-8编码转换到gbk编码
for %%f in (%1) do copy %%f %%f.utf8
for %%f in (%1) do iconv -c -f utf-8 -t gbk %%f.utf8 > %%f

这个批处理文件要求系统当前路径上有iconv.exe。执行iconv时,使用-c参数忽略无法转换的字符。否则如果输入文件包含无法转换的字符,转换会失败。输入文件被备份到加过.utf8后缀的文件。

2.1.4 html-utf82gbk.bat —— 将指定html文件(支持通配符)从utf-8编码转换到gbk编码

@echo off
call utf82gbk %1
echo 将%1中的charset从UTF-8改为gb2312
fr %1 -f:charset=UTF-8 -t:charset=gb2312

这个批处理文件要求系统当前路径上有iconv.exe和白杨的fr.exe。

2.1.5 makechm.bat —— 用Doxygen的输出制作chm文件

@echo off
echo 将Doxygen输出文件编码从utf-8转换到gbk
set path=%path%;%cd%
cd output\html

echo 处理chm输入文件
call utf82gbk.bat index.hhp
call utf82gbk.bat index.hhc
call utf82gbk.bat index.hhk
call html-utf82gbk *.html

echo 生成chm文件
"C:\Program Files\HTML Help Workshop\hhc.exe" index.hhp

if exist index.chm copy index.chm ..\..\refman.chm
del /f /q *.chm
cd ..\..

这个批处理文件假设系统在目录“C:\Program Files\HTML Help Workshop\”安装了“HTML Help Workshop”。并假设输出目录是Doxyfile所在目录的子目录output。

2.1.6 rebuild.bat —— 重新生成chm文件

@echo off
call clean.bat
call build.bat
call makechm.bat

2.2 小结

了解DOS命令的朋友应该很容易看懂这些批处理吧。将这些批处理文件放在工作目录(即Doxyfile所在目录)后,每次只要键入rebuild就可以重新生成chm文件。必要时可以单独使用clean、build、makechm命令。utf82gbk和html-utf82gbk命令也可以单独使用。读者可以从我的主页www.fmddlmyy.cn下载这些批处理文件。

CHM格式的中文问题相关推荐

  1. Android 中文API合集(4)(102篇)(chm格式)

    前言 Android中文翻译组 , Android 中文chm , Android 中文pdf , android 中文 api Android中文翻译组第四个chm格式合集,收集整理102篇译文制作 ...

  2. 生成帮助文档(html或chm格式)

    转自:http://www.blogjava.net/lishunli/archive/2010/01/07/308618.html Javadoc转换chm帮助文档的四种方法总结 V1.0 目录 关 ...

  3. linux下打开chm格式文件

    首先我们安装一个打开chm文件的软件,这个软件叫chmsee. 在终端下运行: sudo apt-get install chmsee 安装完成后有可能还是打不开,这可能是系统升级时,如果xulrun ...

  4. .chm格式文件如何阅读

    CHM 意为 Compiled HTML.以CHM为扩展名的文件图标通常为一个带问号的文档图标,表示帮助文档,是 Microsoft 自 Windows 98 以来提供的一种帮助文档格式的文件,用于替 ...

  5. win7打不开chm格式文件

    最近在开发的过程中,发现重装的系统Wind7 打不开java帮助文档,搜索了半天才找到.在这里分享一下. 一.如果不能打开,可这样恢复文件关联:1.开始运行,输入:regsvr32 C:\window ...

  6. 解决win7无法打开chm格式文件的问题

    解决win7无法打开chm格式文件的问题. (一).简单方法(本人用的这个) 1.打开chm 2.win7提示安全问题 3.chm无法显示内容 4.关闭chm 5.右键点击chm,点击"解除 ...

  7. 无法打开chm格式文件解决方法

    chm是系统自带电子书文件格式,不用任何软件,双击直接可以打开. 我帮你找了几个方法: 如果不能打开,可这样恢复文件关联: 一1.开始运行,输入:regsvr32 C:/windows/system3 ...

  8. JDK1.6官方下载_JDK6官方下载_JDK1.6API(chm)下载_JDK6APICHM中文参考下载_JDK1.6下载_JDK6下载

    JDK6官方下载地址 http://192.18.108.239/ECom/EComTicketServlet/BEGIN31DA9601C7CEF4A95D66372DE469CD8C/-21474 ...

  9. CHM格式文件无法打开的解决方法。

    一.如果不能打开,可这样恢复文件关联: 1.开始运行,输入:regsvr32 C:\windows\system32\hhctrl.ocx ,确定,重新关联文件.  2.执行一下windows目录里的 ...

最新文章

  1. 清理SQL多余登录信息
  2. Linux下用Xdebug调试php
  3. jquery插件开发;(function ( $, window, document, undefined ){}(jQuery, window,document)分析
  4. 面试题56 - I. 数组中数字出现的次数
  5. 在Mac下配置php开发环境:Apache+php+MySql
  6. mysql处理emoji表情_mysql支持emoji表情存取的解决方案
  7. 山寨杂志《Nature and Science》
  8. 抓包工具 - HttpWatch(功能详细介绍)
  9. linux下 Apache 配置虚拟主机三种方式
  10. MySQL 全局配置 --secure-file-priv
  11. 把linux装在移动硬盘上,我将Linux装到了移动硬盘上o(∩_∩)o
  12. 扒开思派健康招股书:大数据的面子,“卖药”的里子
  13. 这批机器学习工具资源,够你用到长胡子了
  14. Linux下压缩/解压缩的命令
  15. css多种方法画四分之一圆曲线
  16. Nginx高级优化(2): shell脚本日志切割,连接超时,进程数,网页压缩,防盗链,FPM 参数优化!!
  17. java实现基于管程法的消费者生产者模式(两个消费者一个生产者)
  18. Python 入门 26 —— ASCII 编码、Unicode 编码、 UTF-32、 UTF-16、 UTF-8、 GB2312 编码、 GBK 编码
  19. 云原生(三十三) | Kubernetes篇之平台存储系统部署
  20. 2008年汽车电子的9大应用开发和改进亮点

热门文章

  1. GBDT/xgboost总结
  2. office文档格式简要介绍
  3. UML中的9种图例解析
  4. HTML 页面 DIV 边框圆角
  5. HardLock 加密狗模拟解密硬复制HardLock
  6. 【Unity-学习-014】EasyAR4.0稀疏空间地图 扫描场景功能
  7. 0-1规划的MATLAB求解
  8. EPSON打印机清零复位操作
  9. mysql解决aba问题_AtomicStampedReference解决CAS的ABA问题
  10. VM虚拟机安装凝思磐石系统(字符界面)