为什么有些字符在 Chrome 中显示为正方形?

为什么有些字符在 Chrome 中显示为正方形?

例如,在开发工具中我得到类似的信息:

Chrome 开发工具

其中一些方块位于行尾,最初我以为它们是回车符,但事实证明它们不是。

此外,方块出现在没有换行符的后面=或许多地方,并且在十六进制编辑器中查看文件显示和>之间根本没有任何字符(例如显示为)="id="id=? "

这也偶尔出现在网页中,例如我看到:

谷歌搜索结果

e我复制了那句话,在十六进制编辑器中查看了它,并且和之间再次没有字符:。源代码中也没有显示任何内容。

我以前从未见过这种情况,自从我几天前重新安装 arch 后才出现这种情况。

Chrome 是:版本19.0.1084.15 dev
Arch 是:内核3.3.1-1-ARCHx86_64

locale.gen语言环境未en_GB注释(UTF-8ISO-8859-1)。 chrome 中的编码默认为ISO-8859-1,但切换为UTF-8没有区别。

这是我使用的 html 文件:测试.html

修复会很棒,解释会很棒,确认这是(或不是)只是我的设置的问题也很好。

编辑:在研究字体之后,我发现在这两种情况下它都试图使用 arial,它在 arch 中是ttf-ms-fonts包的一部分。安装导致字体改变,但方块仍然存在(尽管形状不同)。在这两种情况下,字体都不遵循系统的默认字体。

Chrome 开发工具 - 带 arial

答案1

这解决了我的问题。安装 dejavu 字体。

sudo pacman -S ttf-dejavu

答案2

有一种更好的方法来确定您缺少哪种字体,而不是盲目安装字体包。

例如,我执行了以下操作来解决丢失的字体:

  1. 我收到一封包含两个未知 Unicode 字符的电子邮件(代码点:U+1F44B, U+1F3FC
  2. 将它们粘贴到此处:https://www.fontspace.com/unicode/analyzer#e=8J-Ri_Cfj7w
  3. 查看结果,其中将显示包含这些表情符号/字符的字体
  4. 仅安装所需的字体包,对我来说pacman -S noto-fonts-emoji很有效。
  5. 重建字体缓存fc-cache -vf
  6. 重新启动 Chrome/Chrom

或者,您可以查找 Unicode 名称以帮助在 Google 搜索中查找字体:

$ echo -e 

答案3

标准打印Unicode 替换字符代替当前字体中不存在的字符。

可能的解决方法是更改​​操作系统(如果浏览器继承操作系统设置)或浏览器的默认字体。例如,我的 Ubuntu 11.10 上的 Firefox 11.0 使用“serif”字体(这可能是自由衬线),似乎支持很多Unicode字符。

PS:图像似乎消失了。

答案4

我也有同样的问题。 这一页例如,特别难以阅读,整个页面的文本中都出现了方块。我可以通过将所有arial*.ttf文件重命名/usr/share/fonts/truetype/msttcorefonts为备份文件名,然后将 Chrome 的默认 sans-serif 字体设置为 Droid Sans 来修复此问题。我现在根本无法使用 Arial 字体,但至少页面看起来不错。

相关内容