+ -
当前位置:首页 → 问答吧 → 为什么中文字体在不同locale下显示效果不一样?请高手指点。

为什么中文字体在不同locale下显示效果不一样?请高手指点。

时间:2005-07-12

来源:互联网

我的理解是这样的,不知道对不对,目前没有utf-8的字体库,所以各种gb或big5的编码的字库要通 过encodings.dir这个文件实现gb到utf-8的映射来转换使用gb编码的中文字库,如果是这样的话字体的显示和locale应该没有关系 阿,但是我安装的firefly new sung, 在中文locale下显示很好,但是换到其他的比如en_US.UTF-8 或者其他ISO-9XXX的时候字体的AA自动加上了,但是fonts.conf并没有改变设置,是firefly的安装时候自动加上的,默认关掉中文字 体 的Anti-Alias,我真的不明白为什么到了英文的locale下fonts.conf似乎就失效了。如果选用其他字体如simsun...出现一样 的问题。
   
  特别是firefox,,,别的软件可以用LANG=zh_CN,,,LC_MESSAGE=en_US来解决
  但是只要firefox的界面是英文的,他就无视其他环境设定,是不是这类软件能够自己支配字体设置而绕过xft的fontconfig。还是fontconfig的局限性导致的,只能使用相应语言的locale才能正常执行对应字体的设置。
   
  网上有各种各样的此类问题,无非是改变环境变量或者是给各个软件单独设置。我就是不明白为什么,gtk1用的是核心字体,gtk2和qt用的是xft的fontconfig, 为什么一改变 locale,似乎核心字体和xft的fontconfig就改变了似的。


另外一种方法就是在sans serif 和serif的prefer list里把中文字体提到最前边,那样的话英文也变了,这可以理解,自动使用中文字库的英文字体,因为在最上边,我猜想有这种可能,就是无法在同一个软件 里对通一种风格比如serif自动使用两种不同的字体,根据locale选择对应的合适字体,而无视非本locale的语言字体。
   
    请高手指点这个技术问题,为什么在非中文的locale下边fonts.conf就失效了,不论我的英文或其他西方语言是否UTF-8的或者ISO的。 :confused:
   
   我也在其他论坛上发表了相同的问题,希望能得到一个答案。谢谢大家。      

作者: syb_ca   发布时间: 2005-07-12

热门下载

更多