Linux 上的 skype 存在问题。如果我将语言环境设置更改为 en_US.utf-8,中文字符的显示效果会很差(有些是粗体,有些不是)。如果我将语言环境设置更改为 zh_CN.utf-8,英文和中文都可以正确显示。字体设置相同。
这是我的问题:
Q1: Linux 区域设置中不同类型的 UTF-8 字符集有什么区别?
Q2: 它如何影响某些语言的显示?
答案1
Q1: Linux 区域设置中不同类型的 UTF-8 字符集有什么区别?
绝对没有。差异不是由字符集引起的。
Q2:它如何影响某些语言的显示?
字体配置,Linux 字体配置系统在为特定字符选择最佳字体时,会使用系统区域设置的“语言”和“地域”作为提示。(例如,在我的系统上,它会根据区域设置选择“IPAMincho”或“Source Han Sans”。我认为,尽管前者不是为英语文本制作的,但它在其自己的元数据中实际上被标记为“lang=en”,这并没有帮助。)
据我所知,这是必要的,因为字形本身并没有提供足够的关于它们所属语言的信息,并且(由于 Unicode 的“汉字统一”)可以为同一个字形提供不同的渲染。
您可以设置FC_LANG="zh_CN"
环境变量来为 Fontconfig 提供不同的语言环境提示,而无需更改全局语言环境。
您也可以设置LC_CTYPE="zh_CN.UTF-8"
相同的效果;这可能更适合系统的语言环境配置文件。(通常 $LC_CTYPE 的 language_territory 部分不用于任何用途,因此 fontconfig 会重新利用它。)