LinuxSir.cn,穿越时空的Linuxsir!

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

[求助]zh_CN.UTF-8下Gtk1.0的中文显示问题

[复制链接]
发表于 2005-12-31 15:21:38 | 显示全部楼层 |阅读模式
现在xmms的菜单都是一个一个的方块:(
locale是zh_CN.UTF-8

gtkrc.zh-CN如下:
style "gtk-default-zh-cn" {
          fontset = "-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-iso8859-1, /
      -misc-simsun-medium-r-normal--12-*-*-*-*-*-iso10646-1"}
class "GtkWidget" style "gtk-default-zh-cn"

已经ln -s 到gtkrc.zh_CN.utf-8了

xlsfonts中可以找到simsun->iso10646

并且当locale为gbk时,将iso10646-1改为gbk-0,xmms菜单就可以正常中文显示

这是怎么回事?我还有什么没做的么?
发表于 2005-12-31 15:37:21 | 显示全部楼层
hua@vgh:wangfonts$ cat /etc/gtk/gtkrc.zh_CN.utf8
style "gtk-default-zh-cn" {
       fontset = "-adobe-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
                  -*-*-medium-r-normal--16-*-*-*-*-*-gb2312.1980-0,*-r-*"
}
class "GtkWidget" style "gtk-default-zh-cn"
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-31 16:31:11 | 显示全部楼层
还是老样子,方块,我想并不是字符集的问题。
我把前面的英文字体helvetica删了xmms菜单可以显示中文了,字符集无论是GBK还是10646都可以,英文显示自然也是用的simsun,很难看。但只要在前面加上英文字体,那么汉字就是方块。

现在感觉上是这样的,在UTF-8 locale下,xmms认为在helvetica字体里面存在相应的中文字体,但事实上是没有的,所以显示出来是一个一个方块。

猜想的依据如下:
如果我用gbk locale,gtkrc删掉中文字体,只保留英文字体。文件内容如下:
fontset = "-adobe-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1"
}
class "GtkWidget" style "gtk-default-zh-cn"
那么在终端内运行xmms,提示the font "-adobe-helvetica……" does not support all the required character sets for the current locale "zh_CN.GBK"。菜单是乱码(不是方块)。但同样情况下我将locale配置为zh_CN.UTF-8,那么就没有上述的提示,菜单不是乱码,是方块。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-31 16:35:49 | 显示全部楼层
版主能否从浅讲一下GTK1.0程序调用字体的机制?以及其中locale,字符集,字体所扮演的角色?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-31 17:11:51 | 显示全部楼层
搞定了
升级到testing就好了……
回复 支持 反对

使用道具 举报

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

本版积分规则

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