Web 标准字体中的 Unicode 支持

Unicode support in Web standard fonts

提问人:Pekka 提问时间:11/22/2009 最后编辑:Pekka 更新时间:11/16/2010 访问量:6294

问:

我需要决定是否将 Web GUI 中的几何符号(例如按钮、菜单等的箭头和三角形)呈现为 Unicode 符号(更容易且与颜色无关)或 GIF/PNG 文件(我想避免很多麻烦)。

但是,我见过一些客户端甚至无法显示声明为 unicode 字符的高级标点符号(示例)。

有谁知道从哪个版本开始,操作系统/服务包/应用程序附带标准字体的 Unicode 版本?例如,自 1999 年以来,Office 附带了 Microsoft 的 Arial unicode,但是我没有安装 office,但我的 Arial 仍然至少具有一些 Unicode 范围。

另外,Mac OS 和 Linux 的情况如何?

有人可以向我指出一些关于这方面的综合资源——报告、列表、概述吗?

HTML Windows macOS Unicode 非 ASCII 字符

评论

0赞 bzlm 11/22/2009
您可以使用例如来测试自己。fileformat.info/info/unicode/block/geometric_shapes/......

答:

1赞 zoul 11/22/2009 #1

一些随机观察:

  • 在OS X上,Unicode支持是完美的,至少可以满足您的需求。
  • 在 Windows 上,情况似乎取决于浏览器。我没有使用很多神秘的字符,但我使用的几个字符(主要是标点符号)似乎在Firefox中显示得很好。像往常一样,唯一的问题是在 Internet Explorer 中。
  • 如果你对你的客户有一定的控制权,你可以分发一些好的免费字体吗?
  • 甚至网络字体也可以工作。
  • Unicode 字符的一个缺点是它们通常非常丑陋。太大、太小、位置错误等。

评论

0赞 bzlm 11/22/2009
“Unicode 字符的一个缺点是它们通常非常丑陋”——这里的“Unicode 字符”是什么意思?你指的是晦涩/晦涩难懂的字符、符号、象形文字等吗?
0赞 zoul 11/22/2009
对不起,是的。例如,带圆圈的数字 (➊➋)、形状 (▲•☐) 或箭头 (→⇒➜)。在某些字体中,这些字符的粗细、高度和其他参数不一致。
1赞 bobince 11/22/2009
这种情况更频繁地发生,因为浏览器在不同的字体之间切换,以找到包含您所追求的特定字符的字体。
0赞 MSalters 11/23/2009
@bobince:可能是浏览器,也可能是操作系统本身。例如 Uniscribe (MS Windows)
0赞 osirisgothra 6/16/2022
这个答案的发布者可能应该更新损坏的链接或删除它们
2赞 devio 11/22/2009 #2

这个问题可能是Unicode和字体的重复,我发布了Unicode字体链接列表:

http://en.wikipedia.org/wiki/Category%3AFree%5Fsoftware%5FUnicode%5Ftypefaces

http://en.wikipedia.org/wiki/Unicode%5Ftypefaces

http://unifoundry.com/unifont.html

http://www.fileformat.info/info/unicode/font/index.htm

http://www.alanwood.net/unicode/fontsbyrange.html

http://www.alanwood.net/unicode/fonts.html

http://www.unifont.org/fontguide/

http://www.wazu.jp/index.html

但是,我不确定Unicode标准如何定义如何呈现独立的COMBINING DOUBLE字符,因为它应该组合其他字符。

评论

0赞 bzlm 11/22/2009
不要忘记,字体本身的支持是不够的。渲染引擎也必须具有支持。我同意组合字符不是一个好的测试用例。
11赞 bobince 11/22/2009 #3

实际上并没有字体(*)的“Unicode版本”这样的东西。“Arial Unicode”是一个误导性的名称:它与普通的“Arial”没有本质区别,只是里面有一些字符。到目前为止,它不包含数以万计的字符中的每一个字符的可用字形,事实上,没有一种操作系统标准字体可以这样做。

重要的问题仅仅是要使用的字符是否具有常用操作系统的默认字体的字形。您需要查看您希望单独使用的特定字符的字体支持。

你提到的字符 U+0360 Combining Double Tilde 并不是真正的“高级标点符号”,它是语音学工作中一个奇怪且很少使用的变音符号。因此,字体对它的支持很差也就不足为奇了。另一方面,Stack Overflow 可以使用 U+25CF Black Circle (●) 来逃脱惩罚,因为很多字体都有它。几何形状块中的其他一些字符,如 U+25B2 黑色向上三角形 (▲) 也很常见。

fileformat.info 有一个支持每个字符的常用字体列表,因此在将其用作图像的替代品之前,您可以查看该符号的支持范围,以及您识别的默认操作系统字体是否存在。例如,U+25CF 有很多字体,但 U+0360 没有得到很好的支持:没有一个默认的 Windows 安装字体,而“Libertine”字体则严重错误。

(*:好的,有一种叫做Unicode字体的东西,因为字体的内部字符查找表可能以Unicode或其他字符集表示。但是,这没有实际区别,因为应用程序将始终将其解析为 Unicode;操作系统将在查找时透明地进行转换。

评论

1赞 Joey 9/22/2010
“Arial Unicode”是一个误导性的名称:它与普通的“Arial”没有本质区别,只是里面有一些字符。– 它还缺乏对大多数脚本的脚本渲染支持,它提供了字形,没有字距调整支持,并且自 Unicode 2 以来没有更新。此外,它是一种 Office 字体,因此实际上并不包含在 Windows 中。
0赞 bobince 9/22/2010
同意,这是一个非常糟糕的字体,应该真正消失。