1. 不支持 UTF-8 编码
2. 必须在中文环境(不能使用英文区域或者英文Windows)下使用中文编码
知道了原因,那么解决方案就简单了,先将 docbook 文件用 xmllint 转换成 GB18030 编
码,然后执行 XSLT,最后运行 hhc。
具体可以参见我们代码库中的例子:
http://i18n-zh.googlecode.com/svn/trunk/doc/svnbook/build.xml
http://i18n-zh.googlecode.com/svn/trunk/doc/svnbook/
Dongsheng
zhengxinxing 写道:
> 你好,我从 http://code.google.com/p/i18n-zh/ 上了解到你,感谢你为中文docbook 用户作出的努力
>
> 我最近开始试用 docbook,参考
> http://www.codeproject.com/KB/winhelp/docbook_howto.aspx 一文,编写了一个初步的
> xml 文件,并成功制成 chm
>
> 问题是,最终的 chm 文件,其左边的列表栏为乱码,无法正常显示中文,而正文部分中文则正常。后来查了 xsltproc 输出的 html
> 文件,发现所有中文都被转换成类似 中华 这样的编码,我的结果 html 头部信息如下:
>
> <meta http-equiv="Content-Type" content="text/html;
> charset=ISO-8859-1"><title>中华人民共和国宪法</title>
>
> 我估计如果能够让结果html的 charset 变成 gb18030,内容部分中文正确,应该就可以了。我 google 了几把,都没有找到合适的答案。
>
> 因此请问一下,你们是如何实现良好的中文 html 文件输出的?因为从你们的代码库中没有找到你们翻译、转换相关的脚本或源文件,因此只好发 email 请教,谢谢。
>
> 郑新星
> 2008.05.20
zhengxinxing 写道:
> 2008/5/20 Dongsheng Song <dongshe...@gmail.com>:
>> 知道了原因,那么解决方案就简单了,先将 docbook 文件用 xmllint 转换成 GB18030 编
>> 码,然后执行 XSLT,最后运行 hhc。
>>
>> 具体可以参见我们代码库中的例子:
>> http://i18n-zh.googlecode.com/svn/trunk/doc/svnbook/build.xml
>> http://i18n-zh.googlecode.com/svn/trunk/doc/svnbook/
> 我按示例,编辑了一个 chm.xml 文件,然后先用 xmllint 转换,再执行 XSLT ,最后 hhc,的确成功了。
> 我的 chm.xml 如下:
>
> <?xml version="1.0"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'>
> <xsl:import href="../../docbook-xsl/htmlhelp/htmlhelp.xsl"/>
> <xsl:param name="l10n.gentext.language" select="'zh_cn'"/>
> <xsl:param name="htmlhelp.encoding" select="'GB18030'"/>
> <xsl:param name="chunker.output.encoding" select="'GB18030'"/>
> <xsl:param name="htmlhelp.title">
> <xsl:text>我的第一本书</xsl:text>
> </xsl:param>
> </xsl:stylesheet>
>
> 不过有个疑问,为什么一定要先将 xml 文件转换编码呢?我尝试了一下,直接用原始的 utf-8 编码的 xml 文件,利用那个
> chm.xml 就可以成功转换出一系列的 GB18030 编码的html文件了呀?