请参见下图:
正如您所看到的,“häufigkeit”一词中的“ä”是用泰米尔语字形。几乎所有非 ASCII 字符都会发生这种情况。例如,在标签栏中,标题后面必须有省略号。相反,它用另一个泰米尔语字形呈现。
但事实并非如此。请参见下图:
在以橙色突出显示的单词中,可以看到“ä”已正确呈现。
我似乎没有观察到泰米尔字符的外观有任何模式。在大多数情况下,似乎是这样的情况:在可编辑文本中,出现正确的字符;在 HTML 呈现的文本中,出现泰米尔字符。例如,当我键入问题时,我键入的问题中的所有非 ASCII 字符都会正确显示,但在问题预览中,泰米尔字符会再次弹出。这不是一个严格的规则,如上图中,橙色单词不是文本可编辑块的一部分,并且仍然可以正确呈现。
此外,这似乎是与互联网相关的应用程序的问题。 Emacs 通常会完美地呈现所有字符。但当我打开这站点位于电子世界,泰米尔字符再次弹出来代替非 ASCII 字符。
我尝试删除泰米尔字体以查看会发生什么,但没有任何改善。这些字符仍然被渲染。我不知道它(渲染器)从哪里获取它们。
fc-list | grep Tamil
、fc-list | grep tamil
、的输出
fc-list | grep indic
均为空。
有什么想法可以解释这种行为吗?
更新:
C-u C-x =
对ä
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 字体,而该字体恰好是一种泰米尔字体。我删除了这种字体,并将它们的默认字体更改为支持所有拉丁字符的字体。
这解决了问题