CHM格式的中文问题

news/2024/7/9 23:19:06 标签: chm, output, html, rtf, path, 文档
htmledit_views">

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.html" title=chm>chm del /f /q refman.html" title=chm>chm
if exist html" title=output>output\html del /f /q html" title=output>output\html\*.*
if exist html" title=output>output\latex del /f /q html" title=output>output\latex\*.*
if exist html" title=output>output\rtf del /f /q html" title=output>output\rtf\*.*
if exist html" title=output>output del /f /q html" title=output>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 makehtml" title=chm>chm.bat —— 用Doxygen的输出制作html" title=chm>chm文件

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

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

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

if exist index.html" title=chm>chm copy index.html" title=chm>chm ..\..\refman.html" title=chm>chm
del /f /q *.html" title=chm>chm
cd ..\..

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

2.1.6 rebuild.bat —— 重新生成html" title=chm>chm文件

@echo off
call clean.bat
call build.bat
call makehtml" title=chm>chm.bat

2.2 小结

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



http://www.niftyadmin.cn/n/847804.html

相关文章

【转】CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6 play-music

【转】CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6 CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6<object classid"CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" type"application/x-oleobject" width"…

USB2.0速度识别

这篇文章是转载的&#xff0c;写得很好&#xff0c;解决了我的很多迷惘&#xff01;好&#xff01;好&#xff01;好&#xff01;转自&#xff1a;http://hi.baidu.com/doyanger/blog/item/af45d995dd64f419d31b704d.html我们知道USB2.0向下兼容USB1.x&#xff0c;即高速2.0的h…

根据c语言程序转换成汇编程序

gcc编译器可以将c语言程序转换为对应的汇编程序&#xff0c;只要在编译时候添加-S选项即可&#xff1a; gcc -S main.c 这时候会默认生成main.s汇编程序文件。

Facebook网络模拟测试工具ATC使用

Facebook在其工程博客&#xff08;原文&#xff09;上宣布开源移动网络测试工具Augmented Traffic Control&#xff08;ATC&#xff09;&#xff0c;我迅速试用了一番&#xff0c;非常不错&#xff0c;对手游或者其他APP的调试和测试都非常有帮助&#xff0c;介绍给大家。 现在…

C 语言(C99) 对 64 位整数类型的支持

前几天跟同事闲聊 64 位操作系统时&#xff0c;有人问起 64 位平台上&#xff0c;C 语言的数据类型如何确定的问题。以及跨平台&#xff08;跨 16 位、32 位和 64 位平台&#xff09;程序如何选用合适的数据类型。 我查了一下资料&#xff0c;记录如下&#xff1a; char 通常被…

shutter

我用mint时发现shutter首选项入面的快捷键设置无效囧。点算咧。其实linux下所有软件的功能按钮实际上都系执行相应的命令。 甘shutter相关的命令是什么呢&#xff1f;像我这种经常要写coding 和 testing 的搬砖屌丝&#xff0c;截取当前活动窗口系最常用的。我就试下绑定这个…

如何修改oracle时区

改Oracle的时区设置&#xff1a;alter database set time_zone8.00;修改之后&#xff0c;重新启动Oracle数据库。转载于:https://blog.51cto.com/bjdong/1718638

链接脚本(1)

1、什么是ld&#xff1f;它有什么作用&#xff1f; ld是GNU binutils工具集中的一个&#xff0c;是众多Linkers&#xff08;链接器&#xff09;的一种。完成的功能自然也就是链接器的基本功能&#xff1a;把各种目标文件和库文件链接起来&#xff0c;并重定向它们的数据&#…