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下载这些批处理文件。相关文章推荐
- java实现HTTP的post请求 json格式中文乱码问题
- 最新JDK6API中文参考手册[chm格式]下载
- chm格式文件能打开,但看不到内容问题
- <<< chm格式文件打不开及一些问题
- PHP JSON格式的中文显示问题解决方法
- java实现HTTP的post请求 json格式中文乱码问题
- MySQL 存储php中json_encode格式中文问题及解决
- 关于Linux下usb(vfat格式)挂载中文乱码问题的解决
- Java使用Velocity模板发送HTML格式邮件并解决中文乱码问题
- CSS文件编码格式要和html文件的编码格式一样 才不会出现中文注释所带来的问题
- Android中文API合集(7) + 开发者指南合集(2) (chm格式) 推荐
- 关于CHM格式的帮助文档打首次开时是乱码的问题
- Mac OS X将CSV格式转换为Excel文档格式,Excel转CSV中文乱码问题
- 关于.CHM格式文件打不开的问题
- Gregarius中文日期格式问题解决办法
- 打开CHM文件内部中文乱码问题的解决
- JDK 1.6 中文帮助文档,CHM及HTML格式
- jQuery 1.4中文API文档发布,chm格式
- Android中文API合集(7) + 开发者指南合集(2) (chm格式)
- GDAL打开HDF格式时遇到的中文路径问题(未解决)