本FAQ的最新HTML版本可以在http://dongfangzhixiao.com.cn/cgi-bin/bigate.cgi/b/k/k/http@fish.ihep.ac.cn/www/faq.html
获得. 列出的某些软件可在 ftp://fish.ihep.ac.cn/下获得.
本FAQ是针对XWindows下的汉字处理和汉化问题编写的, 作者编写此FAQ的目的
是使更多的人了解XWindows的汉化问题.
作者并非汉化专家, 甚至谈不上这方面的专职程序员, 作者只是在该领域里进
行了短时间的探索. 所以本FAQ 对有的问题解答很肤浅, 也有可能对某些问题
的解答不正确, 敬请原谅. 作者不对使用本文所造成的后果负责.
本FAQ是开放型的, 如果您有什么问题, 建议, 解答请发电子邮件给作者 , 作
者会在下一版本更新.
总索引
有关汉字的基本知识
汉字编码
汉字编码间的转换
GB与BIG5的识别
有关半个汉字问题
X Font
怎样安装 X Font?
X Font现有哪些种格式?
怎样转换字体?
汉字字体的编辑
什么是Scalable字体?
汉字显示
如何实现汉字和ASCII的混合显示?
怎样竖向或有角度地显示汉字?
如何实现特殊效果的汉字显示?
X Windows下软件的汉化
有汉化的X Server吗?
X 窗口管理器的汉化是否容易?
没有源程序时如何汉化?
有源程序时如何汉化?
如何解决汉字输入问题?
有汉化的Java吗?
现有软件
现有的汉字编辑软件
现有的汉字处理软件
有哪些汉字输入软件?
我想编制可以使用汉字的窗口软件, 有汉化的Widget软件吗?
听说Tcl/Tk是不错的软件包, 它能使用汉字吗?
如何在Netscape显示与输入汉字?
如何在email中使用汉字?
如何在IRC中使用汉字?
图形与汉字
汉字编码基本知识
汉字编码
汉字GB和BIG5都为双字节编码, GB编码的第一字节在0xa1到0xf7之间, 第二字
节在0xa1到0xfe之间. BIG5编码的第一字节在0xa1到0xf9之间, 第二字节有两
个区域, 第一区域在0x40和0x7e之间, 第二区域在 0xa1和0xfe之间.(注意第
二字节的高位可能是零)
汉字编码间的转换
国标与big5之间的转换:
ftp://ftp.fedu.uec.ac.jp/pub/china/software/ifcss/unix/convert/hc-30.tar.gz
国标与HZ之间的转换:
ftp://ftp.fedu.uec.ac.jp/pub/china/software/ifcss/unix/convert/HZ-2.0.tar.gz
GB与BIG5文件的识别
单字统计方法: [url=http://www.pccode.net]cgi-bin/bigate.cgi/b/k/k/http@http://www.erols.com/eepeter/chtools.html"http://dongfangzhixiao.com.cn/cgi-bin/bigate.cgi/b/k/k/http@http://www.erols.com/eepeter/chtools.html , 该方法按汉字出现的频度设置权重, 然后对应文件按字识别
词组统计方法, 该方法按汉字词组出现的频度设置权重, 然后对应文件按字识别
字节统计方法: [url=http://www.pccode.net]cgi-bin/bigate.cgi/b/k/k/http@yumj.kek.jp/www/chrecog.html"http://dongfangzhixiao.com.cn/cgi-bin/bigate.cgi/b/k/k/http@yumj.kek.jp/www/chrecog.html , 该方法统计汉字的第二或第一字节, 取平均值和184比较
有关半个汉字问题
提出半个汉字的原因是有的软件在处理汉字不当时,显示了半个 汉字. 这是因
为对汉字的编码不甚了解造成的. 请注意您所看到的 是汉字的图形显示的一
半被削去了. 既如此, 同样也可以把显示 的汉字变成原来的1/4, 3.14/4...
对应于字符缓冲区, 实际上是原来的汉字的两个字节被删去一个 字节. 这样
它就不可能再查找汉字字模, 所以清屏幕后再显示时 该字节后都是乱码.
那半个汉字能不能实现呢? 当然可以. 很遗憾的是, 您必须仍然 使用双字节
来索引半个汉字, 因为单字符的索引范围最多为256, 抛去最高位为零的只剩
128了. 既然这样, 何苦用半个汉字呢? 基于以上原因, 使用半个汉字也不能
减少输入的麻烦, 相反您的 麻烦可能是原来的两倍.
汉字字体
怎样安装X Font?
字体安装有本机安装和服务器安装两种
获取字库后, 放在某目录如 ~/font下
使用mkfontdir ~/font 产生 font.dir
编制alias文件:font.alias
本机使用: xset fp+ ~/font
列出Font: xlsfonts
显示Font: xfd -fn fontname
使用新的alias时, 使用xset fp rehash
--------------------------------------------------------------------
获取字库后, 放在某目录如 ~/font下
使用mkfontdir ~/font 产生 font.dir
编制alias文件:font.alias
编制font的配置(Configuration)文件, 如 fsconf1234, 其中含有端口号,目录等如,
port = 1234
clone-self = on
client-limit = 10
catalogue = /usr/local/font,/home/yumj/hzfont
default-point-size = 120
default-resolutions = 100,100,75,75
Font服务器启动: fs -cf fsconf1234 &
Font客户使用: xset fp+ tcp/server_host_name:1234
列出Font: xlsfonts
显示Font: xfd -fn fontname
使用新的alias时, 使用xset fp rehash
X Font现有哪些种格式?
X Font有很多种格式,
bdf: 点阵格式, 用于直接访问或转换成其它格式
pcf: X11R5 或更新版本
snf: X11R4 或更早版本
hbf: 汉字位图(bitmap)文件
ttf: True Type
怎样转换字体?
bdftopcf: 把bdf字库转换成pcf格式
bdftosnf: 把bdf字库转换成snf格式
hbftobdf: ftp://ftp.ifcss.org/pub/software/info/HBF-1.1.tar.gz : 把hbf字库转换成bdf字库
ttf2bmp: ftp://ftp.ifcss.org/pub/software/fonts/utils/ttf2bmp.zip : 把TrueType转换成Bitmap
hbf2fnt: ftp://ftp.ifcss.org/pub/software/fonts/utils/HBF2FNT1.ZIP : 把hbf转换成MS Windows Font
有许多商业和免费软件可以编辑修改XFont, 如
ftp://crl.nmsu.edu/CLR/multiling/General/xmbdfed.tar.gz
什么是Scalable字体?
Scalable(可缩放)字体实际上是把现有字体装入时的字体缩放 机制. X字体共
有十四个域(field), 如
-cclib-fangsong-medium-r-normal-jiantizi-24-240-75-75-c-240-gb2312.1980-0
为仿宋简体24点阵. 如果使其缩放, 则可以把第七和第十二域置为'*', 把第
八域设置为字体的大小. 如放大为36点阵,
-cclib-fangsong-medium-r-normal-jiantizi-*-360-75-75-c-*-gb2312.1980-0
请尝试用xfd检查.
矢量字体
了解不多
汉字的显示
如何实现汉字和ASCII的混合显示?
编写的程序把汉字与ASCII分开, 然后逐段处理, 普通字符串的显示 用
XDrawString或XDrawImageString, 汉字的显示用XDrawString16 或
XDrawImageString16.
能够区分的汉字常用编码中, BIG5与GB不同, BIG5编码的第二个 字节的高位
有可能为零.
怎样竖向或有角度地显示汉字?
这是所有字体显示都会遇到的问题.
在X Windows下不能直接有角度地显示字符串. 但是可以通过先写缓冲区, 当
然最好是看不见的(Not Mapped)窗口的pixmap, 然后再从缓冲区中取像素转
换, 此方法相当于图象处理. 使用此方法, 可以实现汉字的任意角度旋转和
任意尺寸的放大/缩小.
如果您有幸装了X11R6, 它本身有设置字体的转换矩阵的功能. 请参考X 手册
的X逻辑字体描述(X Logical Font Description)一节. 如果您使用X11R5并
且可以使用X11R6的字体, 也可以使用 转换矩阵的方法.
软件 xvertext-5.0-ss-9.01.tar.gz是较好的处理字体旋转的软件, 但在应
用于汉字时须作稍微改动.
如何实现特殊效果的汉字显示?
这是所有字体显示都会遇到的问题.
特殊效果如突起, 凹下等都可以通过以不同的颜色,粗细等方式 错位地重写字
符串来实现.注意重写时用XDrawImageString16, 并使用不同的GC来写汉字(GC
中的很多项都影响到汉字显示).
X Windows下的汉化
有汉化的X Server吗?
CX-Window 这个是经过国人改写的 X-Window Server。可以让您的 X-Window
直接显示中文。 但是目前只能显示中文,并无法提供您在各种应用软件中输
入中文。
[作者按:希望改动X Server来汉化输入是很困难的. 这需要改动X Server 的事
件(XEvent)分配(Dispatch). 即使如此, 有些[1] [url=http://www.chinamx.com.cn/Article/os/FreeBSD/200605/20060530181543_31665_2.html][2] [3] 下一页