aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2019-12-12
  • 发帖数1918
  • 经验1132枚
  • 威望1点
  • 贡献值232点
  • 好评度161点
15楼#
发布于:2015-05-19 21:01
pcxfirefox:@aaaa007cn

这个说法是否准确,或者有更深的扩展知识?
回到原帖
字体 fallback 是有先后的
比如页面设置 verdana, tahoma
这两个字体都不含中文
那么中文部分是使用默认的中文无衬线字体
还是使用默认的系统无衬线字体
还是优先选择 verdana 的 fallback 字体或者 tahoma 的 fallback 字体?
如果 verdana 的 fallback 字体本身不含中文,但是这个 fallback 字体自己再次 fallback 到某个中文字体
那么又该如何选择?
我不知道“正确”的做法应该是怎样
烈之斩
火狐狸
火狐狸
  • UID35302
  • 注册日期2011-02-19
  • 最后登录2019-05-04
  • 发帖数236
  • 经验222枚
  • 威望0点
  • 贡献值118点
  • 好评度23点
  • 社区居民
  • 忠实会员
16楼#
发布于:2015-06-19 16:07
liuxb:上面那个bugzilla意思是说无衬线字体被映射到宋体是不对的,因为宋体是衬线字体。
结果mozilla处理方式很粗暴,把默认的无衬线字体 for zh-CN强制设置为雅黑了,除非你手动指定为宋体,否则不管默认的无衬线字体 for zh-...
回到原帖
不好意思,回个老帖

这个fallback的bug和上面的那个bugzilla无任何直接联系,因为根据changelog(https://hg.mozilla.org/mozilla-central/rev/179a122ae672)明显那个只是改了默认的设置成雅黑而已,并没有对fallback的机制进行改动。如果不习惯,单纯地将简中-无衬线字体的字体改成宋体即可回到37的状态。

本人恰好在几年前研究过各个浏览器字体的选择机制。事实上,firefox的字体fallback机制一直都是这样的没有改变过。
它并不遵循字体/系统本身的fallback机制,而是如果在指定字体里查不到该字符的时候会自动调用能显示此字符的语言的字体设置(对于多种语言都能显示的字符,比如汉字到底是日文还是中文,据我观察是根据系统语言来优先选择,然后再根据firefox的内容-语言的优先级选择。一般人的设置肯定都是会优先选用中文字体就是了,但是一些用英文系统的孩子就会遇到奇怪的问题~)。

当然,和网页的语言指定也有一定关系,不过在此按下不表,因为无关。



这图是我当年做的测试,现在结果依然同样不变。图中1指的是简中-无衬线那个设置,2指的是日文-无衬线的设置,3指的是western(现在叫latin了)的无衬线的设置。

可以看到在不指定语言的情况下(大部分网页都没有指定语言。只有维基百科之类的网站网页标准化做得比较好,有指定;但是如果网页编码非Unicode而是ANSI,那么编码本身会被当成语言——请注意),如果你指定了一个无CJK字符的字体给CJK字符,这些CJK字符的字体会被firefox自身地fallback到简中-无衬线的设置里去,而不会遵循系统注册表里的那个字体本身的fallback设定。这点从测试文件的第二行可以明显地看出。
liuxb
非常火狐
非常火狐
  • UID26160
  • 注册日期2008-09-05
  • 最后登录2019-12-12
  • 发帖数653
  • 经验318枚
  • 威望0点
  • 贡献值184点
  • 好评度16点
17楼#
发布于:2015-06-26 14:07
烈之斩:不好意思,回个老帖

这个fallback的bug和上面的那个bugzilla无任何直接联系,因为根据changelog(https://hg.mozilla.org/mozilla-central/rev/179a122ae672)明...
回到原帖
那能不能帮忙解决38的这个问题?
38,37新建配置,只设置了zh-cn的字体,如图,中文字体不一样。38用雅黑,37用宋体

图片:Untitled.png


我的目的是想让38和37一样,默认使用宋体而不是雅黑。
系统是英文版8.1,英文版firefox
html文件内容
<html lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
中文字体
yingwenziti
</html>

你要问那为什么不干脆设置为宋体呢,设置为宋体后,英文字体就也用宋体显示了,太丑,这也是个老问题了。

图片:Untitled1.png

我的...
烈之斩
火狐狸
火狐狸
  • UID35302
  • 注册日期2011-02-19
  • 最后登录2019-05-04
  • 发帖数236
  • 经验222枚
  • 威望0点
  • 贡献值118点
  • 好评度23点
  • 社区居民
  • 忠实会员
18楼#
发布于:2015-07-08 18:20
liuxb:那能不能帮忙解决38的这个问题?
38,37新建配置,只设置了zh-cn的字体,如图,中文字体不一样。38用雅黑,37用宋体

我的目的是想让38和37一样,默认使用宋体而不是雅黑。
系统是英文版8.1,英文版firefox
ht...
回到原帖
有意思,我从来没有试过将简中的字体设置为非中文字体。我帮你取bugzilla问问。
烈之斩
火狐狸
火狐狸
  • UID35302
  • 注册日期2011-02-19
  • 最后登录2019-05-04
  • 发帖数236
  • 经验222枚
  • 威望0点
  • 贡献值118点
  • 好评度23点
  • 社区居民
  • 忠实会员
19楼#
发布于:2015-07-09 07:42
liuxb:那能不能帮忙解决38的这个问题?
38,37新建配置,只设置了zh-cn的字体,如图,中文字体不一样。38用雅黑,37用宋体

我的目的是想让38和37一样,默认使用宋体而不是雅黑。
系统是英文版8.1,英文版firefox
ht...
回到原帖
稍微去bugzilla问了下,发现问题比想象的要简单。我上面说“这个fallback的bug和上面的那个bugzilla无任何直接联系”,是我错了!确实就是那个bug造成的改动。

不过,和修改默认的字体到雅黑倒没关系,而是另外一条设置的改动:

    1.17 -pref("font.name-list.sans-serif.zh-CN", "MS Song, SimSun, SimSun-ExtB");
    1.18 +pref("font.name-list.sans-serif.zh-CN", "Microsoft YaHei, SimHei, Arial Unicode MS");

导致的影响。

这个选项在about:congfig里可以改,大概意思就是无字符可用时的fallback候选选项吧!

如果你不想要微软雅黑,只要在最前面加上SimSun就可以回到37的behavior啦(英文Tahoma,中文宋体)。

顺便一提,稍微研究了下——如果你把这个设置也改成英文字体会怎么样呢?
于是我发现就会fallback到日文的字体设置font.name.sans-serif.ja,再fallback到font.name-list.sans-serif.ja;什么你说这俩你都设成英文字体?那就会fallback到韩文的设置。什么还不够?就会fallback到繁中的设置。还不够?……我懒得测试了,会fallback到Arial Unicode MS,应该来自于beng/knda/mlym/orya/telu等语言的设置,反正永远不会遵循系统的fallback就是了,这点倒是firefox一直没有改过的。
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
20楼#
发布于:2015-07-09 09:03
烈之斩:稍微去bugzilla问了下,发现问题比想象的要简单。我上面说“这个fallback的bug和上面的那个bugzilla无任何直接联系”,是我错了!确实就是那个bug造成的改动。

不过,和修改默认的字体到雅黑倒没关系,而是另外一条设置的改...
回到原帖
原来本来就是“不跟随”……
上一页 下一页
游客

返回顶部