星期日, 十月 14, 2007

firefox在OSX中显示中文的问题

firefox在osx的英文环境中,某些汉字显示为“?” ,在firefox2.0.0.x中依然如此。
这里说了一种解决的办法。
http://hi.baidu.com/dawgdash/blog/item/6157a138c501b227b8998ff1.html

全文引用一下:
//////////////////////
Firefox在苹果 Mac OS X 上,一直被诟病对中文支持不好。我用的是 Firefox 2.0.0.7 英文版,以及英文界面的Mac OS X Tiger。我遇到的问题有:浏览网页的时候掉字,一些中文字显示为问号;在地址栏,搜索栏,以及一些英文网页的文本框中,输入中文的时候,光标对不准字,修改更加是乱七八糟;标签上的中文,有时候会超过标签区域,显示到外面来;一些网页中的中文,复制的时候,选不准位置。

这些问题的确难以忍受。但是Firefox的兼容性,完善的标签浏览功能,还有庞大的插件资源,使人无法割舍。

仔细分析,不难发现,其实这些中文问题,都是出在了字体上。比如搜索百度或者谷歌,会发现一些用户通过拷贝微软的宋体(Microsoft Office for Mac中包含),可以解决最头痛的掉字的问题。如果拷贝宋体到/Library/Fonts中,还可以解决中文选取的问题。这些试验说明 Firefox 在某些中文场合,还默认依靠宋体。这的确是非常奇怪,应该是 Firefox 的 bug。除去掉字问题,其他问题看上去都像是出在 Firefox 不知道该使用什么字体,也不知道当前使用的是什么字体。

解决办法也很简单,告诉 Firefox 在显示界面和渲染网页中,在需要渲染中文的时候,使用某些特定的字体。UserChrome.css 和 UserContent.css 可以达到这样的目的。

具体细节是,在 UserChrome.css 和 UserContent.css 中加入下面的代码:

* {
font-family: Lucida Grande, 华文黑体;
}

需要注意的是,一定要把文件保存为 UTF-8 格式(我是用vim的set encoding=utf-8来确保)。不然 Firefox 无法明白“华文黑体“。(Lucida Grande 和华文黑体,都是苹果的默认字体,也是 Safari 默认字体。)

上面的改动后,经过试验,我遇到的这些中文问题已经全部解决。

/////////////////


不过在我这里还没有解决问题,最后还是要把simsun.ttc复制到/Library/Fonts里算了。

没有评论: