有哪些可自由使用的TTF字体可以覆盖中文、日文和韩文在Java中使用?

12
在一个黑盒 Linux 系统中,系统和 openjdk 都没有任何字体,这导致我的 Java 应用程序出现问题。为了解决这个问题,我从 Oracle Java 安装中复制了 Lucida 字体到 jre/lib/fonts 目录,并运行了 fc-cache -rv jre/lib/fonts 命令,这对我有效。
但似乎这些标准字体并不支持 CKJ 脚本,请问我可以复制哪种字体到字体目录以为我的 Java 应用程序添加此脚本支持?
请注意,我无法在 Linux 机器上运行安装或类似的操作,因此我需要一个字体,可以将其与我的应用程序捆绑,然后将其复制到 jre/lib/fonts 文件夹中。

1
这并不是关于编程的问题,我在问有哪种字体可以安装以提供Open Jdk的完整Java功能。 - Paul Taylor
3个回答

11

你可以看一下 Noto,它将“支持所有语言,并形成协调的外观和感觉”。


2
下载所有字体需要1.1GB的空间!我只需要每个符号都被覆盖,需要什么? - Paul Taylor
2
这是所有字体的下载链接。为什么不只下载CJK字体呢?虽然文件还是很大(约100MB),但这是完整的CJK覆盖,所以你会得到更多! - RoelN
抱歉我表达不清楚,我的意思是我想能够显示来自任何语言的任何字符。当我说CKJ时,是因为我理解这是标准字体中缺失的内容。但我并不需要为特定字符使用多种字体,只需要一种,所以我不确定是否需要整个1.1GB的字体包。 - Paul Taylor
4
“任何语言的任何字符”表示需要一个真正巨大的字符集。 Noto是唯一努力覆盖Unicode编码的 所有 语言的字体。因此,如果您想要支持 所有 语言,Noto似乎是最合适的选择。 - RoelN
4
没有Noto Sans CJK字体的.ttf格式(它们全部是ttc或otf格式)。有人找到了.ttf格式的吗? - seokhoonlee
显示剩余3条评论

9
请勿合并创建自己的CJK字体,因为同一个中文字符(Unicode中的一个代码点)可能在简体中文、繁体中文、日语和韩语字体中具有不同的字形。如果您为来自其他地区的用户使用设计用于某个地区的字体,则他们会觉得您的字体很奇怪,难以辨认,甚至是错误的。
请查看Noto Serif CJK is here! 以了解“述”字的字形示例。
请查看Source Han Serif, an open source Pan-CJK typeface 以了解“曜”字的字形示例。
我强烈建议您在编程中使用Noto Sans CJK和Noto Serif CJK系列,并在呈现简体中文文本时使用Noto Sans/Serif CJK SC,在呈现繁体中文文本时使用Noto Sans/Serif CJK TC,在呈现日语文本时使用Noto Sans/Serif CJK JP,在呈现韩语文本时使用Noto Sans/Serif CJK KR。请勿混用它们。

Unicode 的整个思想是每个码位对应一个单独的字符,而这与 Windows 的代码页形成对比。 - paul23
@paul23:但在做出这个决定时,Unicode联盟没有考虑到本地化的偏好。例如,花了多年的游说才最终获得了ţț不同的Unicode值 - 最初,Unicode专家们认为这只是“图形上的差异”。 - Jongware
不仅仅是亚洲语言,如果我想支持所有语言怎么办?我该怎么做? - amitava mozumder
@amitavamozumder Noto是一个庞大的字体家族,涵盖了许多语言。此外,它们还有不同的字体来覆盖字形变体,例如Noto CJK字体覆盖了中国、日本和韩国之间的字形变体。例如,Noto分别拥有阿拉伯语和乌尔都语字体。虽然它们共享相同的Unicode代码点,但它们的外观却非常不同。因此,我认为支持“所有”语言的最佳方法是使用多种字体,并在一些不同字符共享相同代码点时正确使用它们。 - ChenZheChina

6

我找不到支持中文、日文和韩文的字体,所以我必须自己创建。下面是一个我制作的快速程序,展示了这种字体在四种语言(包括英语)中的“你好”的显示效果。(希望这没问题)

下载链接:https://mega.nz/#!Mt5mCJzR!DMVa1usSTV6OEraQQlcF8dGcg5VYkboNB6O_dkQD-QE

编辑:

我发现有人跟我做了类似的事情(组合了很多字体)。他们的下载链接在这里


你是如何将它们合并的?我需要一个包含所有语言的合并版本。我该怎么做? - amitava mozumder
@amitavamozumder 我不建议尝试为所有语言创建自己的字体,我只创建了这一个字体,因此我只能支持英语、中文、日语和韩语。如果你想要每一种语言,我建议你查看被接受的答案,虽然它很大但包含了每一种语言。 - Tacodiva
1
notosans cjk 可以正常工作,但是 notosans 所有语言的字体都无法使用,你有什么想法吗? - amitava mozumder
@amitava mozumder 很抱歉回复晚了,没有任何信息很难确定问题所在。如果您想解决这个问题,我建议您提出自己的问题。 - Tacodiva
1
@Tacodude7729,你的下载链接已经失效了。 - cYrixmorten
我将在我们的生产中使用这个。谷歌的NotoCJK不支持英语,所以我会使用这个。谢谢。 - aRtoo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接