LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: voodoomaster

奇怪的现象:GNOME下文件名正常,KDE下乱码

[复制链接]
 楼主| 发表于 2006-9-2 20:24:54 | 显示全部楼层
受教了........
看来还是用gnome算了,感觉现在gnome已经在很多技术上超过kde了。
回复 支持 反对

使用道具 举报

发表于 2006-9-3 10:20:04 | 显示全部楼层
跟技术没关系,是 Trolltech 为了保持 Qt 的二进制兼容,小版本号之间不添加新功能。Qt 3 刚出来的时候还没有 fontcnofig 这一套,要不是 redhat 强行在 3.0.5 的时候自己加了 fontconfig 的支持,现在 Qt 大概还不支持,既然代码是 rh 的,rh 对 KDE 又不怎么样,自然不能指望 Qt 3 的支持有多好。
回复 支持 反对

使用道具 举报

发表于 2006-9-3 14:29:44 | 显示全部楼层
Post by fallen
都说是正常情况啦,
pango可以在同一个界面中,同不同的字体显示需要的文字
比如中文+日文的歌曲名,pango可以用日文的字体显示中文字体中不包括的部分
kde没有pango的支持,所以显示不了某些字体不能显示的字符,所以就变成方块了
kde4会有一个类似的字体匹配机制


Qt3 可以先用 qtconfig-qt3 设置下字体替换
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-8 16:37:35 | 显示全部楼层
这两天又把locale换回了utf8,但是现在问题又来了,那就是gtk1的程序(XMMS)在显示同时有中文和日文的文件名时,又出现和上面相似的问题了。估计就是因为gtk2有pango来处理不同编码字体同时显示的问题,而gtk1和qt没有,所以就出现了这些问题。看来字体显示方面,还是gtk2/gnome2才是王道啊。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-10 12:09:24 | 显示全部楼层
今天发个贴图上来,我也搞不清楚为什么,反正文件名中同时有中文和日文时,gtk1程序就是乱码,只有中文或者只有日文时,就能正常显示,和qt如出一辙。gtk2下面的程序就正常。windows对此处理得也比较好,反正我在explorer下面就从来没出现过乱码。发个截图上来,大家可以看看。另外xmms的playlist和title始终无法在utf8下面正常显示中文文件名,这个不想去理他了。是不是装个日文字体可以解决这个问题?但是simsun应该包含了日文字体了啊,要不gtk2程序显示怎么是正常的?


PS:我比较喜欢收集日本的动漫音乐,所以这个问题十分突出。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2006-9-11 12:51:09 | 显示全部楼层
我碰到类似问题,在windows中有一些中文文件名,在FC5中以utf8的locale mount上来后,在gnome中一切显示正常,在kde中则有个别字符显示为空格。在xmms的打开文件的对话框中中则直接不显示该字符。

在kde中对这些文件名进行修改,修改成在windows和gnome中显示的同样的中文名字后,则在windows,gnome和kde和xmmse中都正常。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-11 15:18:10 | 显示全部楼层
Post by shensy
在kde中对这些文件名进行修改,修改成在windows和gnome中显示的同样的中文名字后,则在windows,gnome和kde和xmmse中都正常。



文件名中有些文字是日文的啊,那该怎么输入哦?我可不懂日文输入..........
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-20 16:36:56 | 显示全部楼层
问题解决了,原来是gtk1的字体替换问题。
原来的gtkrc文件如下:

  1. style "gtk-default-zh-cn" {
  2.        fontset ="-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-iso8859-1,\
  3.                   -misc-simsun-medium-r-normal--14-*-*-*-*-*-iso10646-1"
  4. }
  5. class "GtkWidget" style "gtk-default-zh-cn"
复制代码



换成

  1. style "gtk-default-zh-cn" {
  2.        fontset ="-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-iso8859-1,\
  3.                   -misc-simsun-medium-r-normal--14-*-*-*-*-*-iso10646-1,\
  4.                   -misc-fixed-medium-r-normal--14-*-*-*-*-*-jisx0208.1983-0"
  5. }
  6. class "GtkWidget" style "gtk-default-zh-cn"
复制代码


就只加了最后一行日文的字体替换,就可以在gtk1程序里面正常显示了。
但是还有个问题,我只知道它用了某个jisx0208.1983-0编码的字体,但它到底用了哪一种字体,由于是自动匹配的,所以还是不清楚,用xlsfonts也是只有显示misc-fixed-medium-r-normal--14-*-*-*-*-*-jisx0208.1983-0,具体是什么字体不知道。有哪位高人知道如何查看具体使用的字体是哪个的请指点一下。因为我很想试试在qtconfig里面使用相同的方式来作字体替换,试试能否让kde能正常显示中日混合的文件名,而qtconfig里面是不能自动匹配的,必须指定一个具体的字体来作替换。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-21 09:42:03 | 显示全部楼层
问题终于解决了,原来真的是要装一个日文的字体才行。把win下的msmincho.ttf copy过来,用ttmkfdir生成fonts.scale后,再在~/.fonts.conf里面把字体替换设定好,就可以让qt程序正常显示带日文的文件名了!

再修改了一下~/.gtkrc文件,这下xmms也可以显示日文文件名了,以前没装msmincho字体,也可以显示,但是日文字体大小无法修改,和simsun一起显示,一些大一些小,很郁闷。现在都用12号字体,基本完美了。

但是还是有个问题,那就是为什么以前没装msmincho字体,也没有设定字体替换时,gtk2的程序却能正常显示日文文件名呢?真的是因为pango在起作用?那么它又用的是什么字体呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2006-9-22 00:11:03 | 显示全部楼层
Post by voodoomaster
这两天又把locale换回了utf8,但是现在问题又来了,那就是gtk1的程序(XMMS)在显示同时有中文和日文的文件名时,又出现和上面相似的问题了。估计就是因为gtk2有pango来处理不同编码字体同时显示的问题,而gtk1和qt没有,所以就出现了这些问题。看来字体显示方面,还是gtk2/gnome2才是王道啊。

用kde的人怎么会去用xmms?你用Amorak不就没问题了。
回复 支持 反对

使用道具 举报

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

本版积分规则

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