互联网相关应用程序中的错误字符渲染

互联网相关应用程序中的错误字符渲染

请参见下图:

带有泰米尔语字符的图像

正如您所看到的,“häufigkeit”一词中的“ä”是用泰米尔语字形。几乎所有非 ASCII 字符都会发生这种情况。例如,在标签栏中,标题后面必须有省略号。相反,它用另一个泰米尔语字形呈现。

但事实并非如此。请参见下图:

具有正确 Unicode 字符的图像

在以橙色突出显示的单词中,可以看到“ä”已正确呈现。

我似乎没有观察到泰米尔字符的外观有任何模式。在大多数情况下,似乎是这样的情况:在可编辑文本中,出现正确的字符;在 HTML 呈现的文本中,出现泰米尔字符。例如,当我键入问题时,我键入的问题中的所有非 ASCII 字符都会正确显示,但在问题预览中,泰米尔字符会再次弹出。这不是一个严格的规则,如上图中,橙色单词不是文本可编辑块的一部分,并且仍然可以正确呈现。

此外,这似乎是与互联网相关的应用程序的问题。 Emacs 通常会完美地呈现所有字符。但当我打开站点位于电子世界,泰米尔字符再次弹出来代替非 ASCII 字符。

我尝试删除泰米尔字体以查看会发生什么,但没有任何改善。这些字符仍然被渲染。我不知道它(渲染器)从哪里获取它们。

fc-list | grep Tamilfc-list | grep tamil、的输出 fc-list | grep indic均为空。

有什么想法可以解释这种行为吗?

更新:

C-u C-x =äEWW 中的角色给出以下结果

EWW 中罪魁祸首的信息

(我无法在此处复制粘贴信息,因为泰米尔字符会在此处呈现为正常的拉丁字符)。

如果我将 Firefox 或 EWW 中未正确呈现的字符复制到正常的 Emacs 文本文件中,它们会正确呈现。这就是我一直以来的生存方式:)

我也在 HTTPS 网站上观察到这个问题。例如维基百科上的这个网站未正确渲染。

一件更有趣的事情是我创建了一个new包含一些非 ASCII 字符的文件。 Emacs 正确呈现文件,但 Firefox 显示字符ä。输出file new

new: UTF-8 Unicode text, with no line terminators

答案1

正如@Gilles 在评论中指出的那样,这是一个字体问题。我尝试了C-u C-x =错误渲染的字符和ä正确渲染的字符。

唯一的区别在于这一行:

对于正确渲染的角色:

xft:-paratype-PT Mono-normal-normal-normal-*-17-*-*-*-m-0-iso10646-1 (#xA5)

对于错误渲染的字符:

请参阅问题中第三张图片的最后一行。

正如我们所看到的,由于某种原因,Emacs 和 Firefox 使用 TSCU_Paranar 字体,而该字体恰好是一种泰米尔字体。我删除了这种字体,并将它们的默认字体更改为支持所有拉丁字符的字体。

这解决了问题

相关内容