CHM格式的中文问题
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格式的中文问题相关推荐
- Android 中文API合集(4)(102篇)(chm格式)
前言 Android中文翻译组 , Android 中文chm , Android 中文pdf , android 中文 api Android中文翻译组第四个chm格式合集,收集整理102篇译文制作 ...
- 生成帮助文档(html或chm格式)
转自:http://www.blogjava.net/lishunli/archive/2010/01/07/308618.html Javadoc转换chm帮助文档的四种方法总结 V1.0 目录 关 ...
- linux下打开chm格式文件
首先我们安装一个打开chm文件的软件,这个软件叫chmsee. 在终端下运行: sudo apt-get install chmsee 安装完成后有可能还是打不开,这可能是系统升级时,如果xulrun ...
- .chm格式文件如何阅读
CHM 意为 Compiled HTML.以CHM为扩展名的文件图标通常为一个带问号的文档图标,表示帮助文档,是 Microsoft 自 Windows 98 以来提供的一种帮助文档格式的文件,用于替 ...
- win7打不开chm格式文件
最近在开发的过程中,发现重装的系统Wind7 打不开java帮助文档,搜索了半天才找到.在这里分享一下. 一.如果不能打开,可这样恢复文件关联:1.开始运行,输入:regsvr32 C:\window ...
- 解决win7无法打开chm格式文件的问题
解决win7无法打开chm格式文件的问题. (一).简单方法(本人用的这个) 1.打开chm 2.win7提示安全问题 3.chm无法显示内容 4.关闭chm 5.右键点击chm,点击"解除 ...
- 无法打开chm格式文件解决方法
chm是系统自带电子书文件格式,不用任何软件,双击直接可以打开. 我帮你找了几个方法: 如果不能打开,可这样恢复文件关联: 一1.开始运行,输入:regsvr32 C:/windows/system3 ...
- JDK1.6官方下载_JDK6官方下载_JDK1.6API(chm)下载_JDK6APICHM中文参考下载_JDK1.6下载_JDK6下载
JDK6官方下载地址 http://192.18.108.239/ECom/EComTicketServlet/BEGIN31DA9601C7CEF4A95D66372DE469CD8C/-21474 ...
- CHM格式文件无法打开的解决方法。
一.如果不能打开,可这样恢复文件关联: 1.开始运行,输入:regsvr32 C:\windows\system32\hhctrl.ocx ,确定,重新关联文件. 2.执行一下windows目录里的 ...
最新文章
- 清理SQL多余登录信息
- Linux下用Xdebug调试php
- jquery插件开发;(function ( $, window, document, undefined ){}(jQuery, window,document)分析
- 面试题56 - I. 数组中数字出现的次数
- 在Mac下配置php开发环境:Apache+php+MySql
- mysql处理emoji表情_mysql支持emoji表情存取的解决方案
- 山寨杂志《Nature and Science》
- 抓包工具 - HttpWatch(功能详细介绍)
- linux下 Apache 配置虚拟主机三种方式
- MySQL 全局配置 --secure-file-priv
- 把linux装在移动硬盘上,我将Linux装到了移动硬盘上o(∩_∩)o
- 扒开思派健康招股书:大数据的面子,“卖药”的里子
- 这批机器学习工具资源,够你用到长胡子了
- Linux下压缩/解压缩的命令
- css多种方法画四分之一圆曲线
- Nginx高级优化(2): shell脚本日志切割,连接超时,进程数,网页压缩,防盗链,FPM 参数优化!!
- java实现基于管程法的消费者生产者模式(两个消费者一个生产者)
- Python 入门 26 —— ASCII 编码、Unicode 编码、 UTF-32、 UTF-16、 UTF-8、 GB2312 编码、 GBK 编码
- 云原生(三十三) | Kubernetes篇之平台存储系统部署
- 2008年汽车电子的9大应用开发和改进亮点