上回说到,Midori 浏览器在打开网页时,会无法正常显示其中的文字。比如,网易首页就会是下面这样白茫茫的一片:

网易首页截图1

那次曾折腾了各种办法,却依然无果,最终只能无奈放弃。而今日终于时来运转,竟在偶然之间发现了问题的关键。

话说今日用火狐浏览器打开这个网页时,竟然也出现了成段的空白,如下所示:

火狐截图1

看到这个页面时,当时我就震惊了:这不正和多日前苦战未果的那个 Midori 浏览器问题相同么?怎么今日火狐也跟风了?

盯着这个页面,直直愣了半晌。显然,肯定不可能原文就是大段的空白,因为选中后可以看到其实每段都是有文字的,如下图所示:

火狐截图2

这样看来,似乎是和字体相关的问题?想到火狐里有个“检查元素”的选项,若是把和字体相关的 CSS 样式取消,会怎样呢?如下:

火狐截图3

其中有一句:

font-family: "Baskerville", "文泉驿微米黑", serif;

可以看到其中指定了中文字体文泉驿微米黑。去掉前面的对钩,将该字体设定取消后,如下:

火狐截图4

啊哈!文字居然全部显示出来了!看来这是一个办法。

于是想到了之前的那个 Midori 的问题,遂马不停蹄地打开 Midori。找到关于字体设定的样式后,将其取消,如下:

网易首页截图2

哦,苍天大地!这一刻热泪已忍不住夺眶而出:

世事变迁,沧海化为桑田,久违的文字,你终于又出现了吗?

联想到上面提到的文泉驿微米黑,似乎和浏览器的字体设定有关。打开字体设置页面,这里我之前设定的是方正兰亭黑

字体设定截图1

将其修改为文泉驿微米黑后:

字体设定截图2

???什么情况?怎么又成了一片空白了?再换成文泉驿正黑,如下:

字体设定截图3

嘿,又正常了。

如此看来,应该可以确定是文泉驿微米黑字体的问题了。于是查看了一下这个字体。下图是命令运行结果的截图。

命令截图

首先查看系统目录 /usr/share/fonts/wenquanyi/,没有这个字体;再到用户主目录的字体目录 ~/.fonts/ 下,原来在这里。可是怎么颜色怪怪的呢,似乎是个软链接?又仔细查看了下。

我了个去,这个链接居然指向了文件 /tmp/wqy-microhei.ttc,而 /tmp 目录是挂载在内存中的!尼玛,经过这么多次的系统重启,其中的文件早就消失无踪了!

仔细回想了下,似乎之前为了看看文泉驿微米黑的显示效果,曾经安装了这个字体。当时将其放在了挂载在内存中的目录 /tmp 下,想着是为了防止系统分区出现碎片(虽然可能根本没有太大作用,不过心理上会觉得有些安慰),随后再链接到主目录下的字体文件夹中。谁知最后竟忘记了这个事,导致被 Midori 的问题困扰许久。

哦,这是多么痛的领悟!

好了,现在根源找到了,解决也就很简单了。将这个链接删除,然后用 fc-cache 命令重新生成字体缓存。

现在再用 Midori 打开网易首页看看,果然显示正常了:

网易首页截图3

其实这里还有一个问题,我在字体设定中设置的默认的比例字体为方正兰亭黑,不知道为什么这里会显示为文泉驿正黑。似乎 Midori 在未找到 CSS 中指定的字体时,会用文泉驿微米黑文泉驿正黑来代替,而不是用字体设置页面中设定的字体?这个问题待后面有时间了到 Midori 的源代码中查看一下,目前暂且放下。

再看一下刚刚火狐打开的那个页面,也正常了:

火狐截图5

好了,困扰了多年的问题终于搞定了!心中总算落下了一块大石。现在腰不酸了,腿不痛了,走路上楼也有劲了!嘿!

(完)