您的位置:首页 > 其它

CHM格式的中文问题

2012-05-12 22:11 141 查看

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下载这些批处理文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: