支持所有utf-8字符的字体用于php imagettftext

10
我在使用 PHP 的 imagettftext 函数生成图片。是否有一种支持所有 UTF-8 字符的 TrueType 字体?

1
UTF-8是Unicode代码点(字符)的一种编码方式。所以我不确定你的问题是什么。Unicode中有100,000多个代码点。 - Brian Neal
我正在使用imagettftext在php中生成图像。它不能显示我尝试的所有utf-8字符字体。我该如何生成支持任何utf-8字符的图像? - Tom Kincaid
1
好的,再说一遍,UTF-8只是一种编码方式,用于表示Unicode字符。我不知道是否有任何字体支持每个Unicode代码点。 - Brian Neal
2
我最终使用了Arial Unicode.ttf字体,它几乎包含了你想要的所有语言。 - Tom Kincaid
2个回答

13
如Brian Neal在评论中所述,UTF-8只是多种编码标准之一,可以表示Unicode字符集中的每个字符,该字符集目前包含100,000多个条目。
因此,您实际上正在寻找一种支持当前地球上使用的所有10万+ Unicode字符的真正类型字体(它是一个移动目标,因为该集合不断扩展和调整)。
因此,我想文字上的答案是否定的,您应该检查预设条件(在您的用例中可能遇到哪些字符子集),并搜索适合的多用途字体。
但是,有人尝试提供覆盖大量Unicode空间的字体 - 搜索“泛Unicode字体”以获取概述。

(U+2615 -“热饮料” ;)


1
在翻找了一会儿之后,我找到了 Arial Unicode.ttf 这个字体,它几乎包含了所有主要的语言,包括西里尔文、阿拉伯文、中文等。 - Tom Kincaid
@TomKincaid 如果你需要“低保真度”的字体,可以使用UniFoundry的字体,虽然其排版质量较低,但覆盖了超过65000个Unicode码点。 - Boldewyn
1
值得注意的是:由于历史设计考虑,任何字体都不能具有超过1个“unsigned short”字符 - 即65,535个不同的字形。一些代码点可能共享一个字形 - 例如拉丁大写字母“A”和希腊大写字母“Alpha”,但这几乎是您可以通过人为方式扩展范围的全部内容了。 - Jongware

4
最接近的选择是Google Noto字体。
Sans和Serif支持582种语言,而Mono支持212种语言。
链接和更多信息在这里:https://www.google.com/get/noto/

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