LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1236|回复: 5

[跪求]如何彻底解决simsun字体在utf8的locale下让gtk1程序显示汉字的问题

[复制链接]
发表于 2006-6-26 15:27:48 | 显示全部楼层 |阅读模式
一直用simsun字体,因为方便(不要鄙视我)。
系统是debian,LANG=en_US.UTF-8,LC_CTYPE=zh_CN.UTF-8。GNOME2.8。utf8的locale无所谓英文中文,因为是统一编码的,只要有相应语系的字体就能正常显示。
可是在locale为UTF-8时,gtk1程序老是无法正常显示汉字。具体表现为英文正常,中文方块或者乱码,或者干脆就空白不显示。
xlsfonts 可以看到simsun已成功加载,有iso10646-1和 gbk-0的编码。然后按照网上能看到的各个版本的修改方法,/etc/gtk/下面的gtkrc.zh_CN、gtkrc.zh_CN.utf8、 gtkrc.utf8三个文件不知到底哪个起作用,所以都改了,里面的内容大致又有以下几种版本的写法:

style "gtk-default-zh-cn-utf8" {
fontset = "-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-iso10646-1\
                  -misc-simsun-medium-r-normal--14-*-*-*-*-*-iso10646-1"
}
class "GtkWidget" style "gtk-default-zh-cn-utf8"

首先,stlye里的"gtk-default-zh-cn-utf8"有的是"gtk-default-zh-cn",两种都试过,无效。


其次fontset = "-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-iso10646-1\
                  -misc-simsun-medium-r-normal--14-*-*-*-*-*-iso10646-1"
这一行,有的只用simsun,就是写成
fontset = "-misc-simsun-medium-r-normal--14-*-*-*-*-*-iso10646-1" ,试过,无效。
再次,中文部分的simsun字体有的写成不用utf8编码,而是gb2312或者gbk,就是如下两种写法:
fontset = "-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-iso10646-1\
                  -misc-simsun-medium-r-normal--14-*-*-*-*-*-gb2312.1980-0"
或者:
fontset = "-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-iso10646-1\
                  -misc-simsun-medium-r-normal--14-*-*-*-*-*-gbk-0"
都试过,同样无效!


希望能有某位大侠进来给个彻底的解决方案,如果需要把/etc/font/font.conf和/etc/fonts/local.conf贴上来也可以。另外如果你没用simsun字体而是其他字体的话,各个解决方案也行,关键是所有配置文件一定要贴完,不要试了又没用,为了彻底摆脱gbk,我都快抓狂了!(直到现在还在用gbk,因为可以让各种程序都正常显示汉字,但是mplayer1.0pre8就有问题了,他用了gtk2的gui,而且只支持utf8编码,用gbk的话该显示汉字的地方就成了空白!)
另外,只用simsun的字体还有个原因是以前用过firefly的AR PL NEW SUNG,可惜没gbk编码。其他字体都不好看,不喜欢。英文都用系统自带的adobe的helvetica,不用win下的tahoma。
发表于 2006-6-26 19:49:54 | 显示全部楼层
我的系统没有安装gtk啊(没gtk程序),根据记忆说的啊。
默认好像没有gtkrc.zh_CN.utf8,是你自己添加的吧。

# cd /etc/gtk
# ln -sf gtkrc.zh_CN gtkrc.zh_CN.utf8
因为你用的是英文的locale,所以再添加一个这个:
# ln -sf gtkrc.zh_CN gtkrc.en_US.utf8

这样就可以显示中文了。

俺也来充一次DX,哈哈
回复 支持 反对

使用道具 举报

发表于 2006-6-26 19:54:02 | 显示全部楼层
这样并不是完美显示了。记得在我的机器上有的小字体还不能正确显示。
把你提供的gtkrc.zh_CN文件拿来试一下。

建议楼主升级一下吧。现在都utf8了,gtk1俺都不装了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-27 16:11:57 | 显示全部楼层
我要用nerolinux啊,这个是gtk1的...............
本来用bmp替代xmms,mplayer用1.0pre8的版本,就没有gtk1的程序了,但是实在是喜欢nero的刻录工具,win下一直用nero的。现在linux版的nerolinux是gtk1的,没办法啊。

不过改一下gtkrc.en_US.utf8文件倒是真的,我还真忽略了。试试再说。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-30 15:23:27 | 显示全部楼层
今天把/etc/gtk/下的gtkrc.en_US和gtkrc.en_US.UTF-8如法炮制了一下,在fc3下跑fvwm,xmms终于可以在菜单里面正常显示中文了!但是只是菜单里面,就是点“打开mp3文件”时,弹出的文件浏览器的对话框可以正常显示汉字了。然而主程序界面上和播放列表上仍然是一片乱码。设定了半天也没用。而且在设定主程序和播放列表的字体时,居然没有simsun这个字体了!只有一个叫song ti的字体,看了一下应该是系统自带的,不是simsun。用xfontsel也看不到simsun字体了,很是奇怪。明明simsun支持iso10646-1的编码啊!用gbk都看得到,一用utf8就废了........继续期待高手解答。另外想问一下,如何让gtk1和gtk2的程序在fvwm等非gnome桌面环境和窗口管理器下不用默认的那个bluecurve主题啊?个人认为bluecurve太难看了,很不喜欢。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-3 08:55:21 | 显示全部楼层
今天在自家用的debian3.1上试了试,奇怪的是和fc3一样的设置文件,fc3都可以出中文了,debian却还是方块。怪了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表