为什么日文文本会显示中文字形?

为什么日文文本会显示中文字形?

这似乎是一个长期存在的 Ubuntu 问题,如果我没记错的话,我几年前就遇到过它了。

我安装了中文和日文两种语言支持(并希望保持这种状态——但我知道可以通过卸载中文字体来“解决”这个问题,我试过这样做)。问题是日文文本显示为中文字形。不是每个日文字符都显示为中文字形,但可能是系统认为在中文中有对应字形的字符显示为中文字形。

这在所有应用程序中都会发生:libreoffice、浏览器、gedit、终端等。

(该问题与输入法无关。)

安装的字体:

中文(和日文)
fonts-arphic-ukai
font-arphic-uming
ttf-wqy-microhei
ttf-wqy-zenhei

日文
字体-takao-gothic
字体-takao-mincho
字体-takao-pgothic

其他似乎支持日文/中文
字体的

重现步骤:安装日文和中文的字体/支持,然后输入日文字符。您需要能够识别两种语言的字形之间的差异才能发现此问题。

例:誤り、直す(会上传图片)

答案1

这不是 Ubuntu 的问题(也不是任何操作系统的问题),而是源于 Unicode 的设计方式。Unicode 使用统一的 CJK 字符数据库,称为 Unihan。一个字符(单个 Unicode 代码点)可能由不同的书写传统中的不同字形表示。

屏幕/打印机/浏览器对给定字符(代码点)使用的字形问题是由于不同字体将相同的 Unicode 字符映射到不同的字形的方式造成的。

解决方案是尽可能使用为每种语言制作的特定字体,同时记住共享或网络文档将根据本地配置呈现字形。简而言之,文档本身中的 Unicode 代码点很重要,而不是屏幕上的字形。

如果您确实需要确保使用特定的字形,则需要有一种方法来锁定或嵌入文档或应用程序中所需的字体。

来自 Unicode 常见问题解答:

Unicode 标准旨在对字符进行编码,而不是对字形进行编码......

在绝大多数情况下,如果一个汉字在不同地区写法不同,那么一个地区的读者会认出另一个地区的读者会认出该汉字的形式;在所有情况下,整个东亚的专家都会认识到该汉字的基本统一性……

偶尔会出现统一字符的情况,其典型中文字形和典型日文字形非常不同,以至于典型的日本读者会不熟悉中文字形,例如,直 U+76F4。为了防止日本读者出现可读性问题,建议在向日本读者展示 Unihan 文本时使用日式字体。

汉字统一旨在保持易读性。文档通常可以简单地以用户喜欢的字体显示。如果需要区分样式(例如,同一文档中的中文字体和日文字体),则应根据需要将适当的字体应用于特定文本。

由于现有字体的限制,偶尔会出现使用中文字体显示罕见汉字的情况,而本应使用日文字体显示。这是字体问题,而不是字符编码问题,其他字符编码标准也会出现同样的问题。

答案2

如果编码是 UTF-8,应用程序将选择第一个能够显示该字符的字体。默认情况下,它按字母顺序排列。因此,如果您同时安装了中文和日文字体,您可能会得到不想要的字形。

您可以通过编辑文件来选择应用程序选择字体的顺序~/.fonts.conf。但是,如果您将日文移到中文前面,则可能会出现相反的问题。

相关内容