提问人:Pekka 提问时间:11/22/2009 最后编辑:Pekka 更新时间:11/16/2010 访问量:6294
Web 标准字体中的 Unicode 支持
Unicode support in Web standard fonts
问:
我需要决定是否将 Web GUI 中的几何符号(例如按钮、菜单等的箭头和三角形)呈现为 Unicode 符号(更容易且与颜色无关)或 GIF/PNG 文件(我想避免很多麻烦)。
但是,我见过一些客户端甚至无法显示声明为 unicode 字符的高级标点符号(示例)。
有谁知道从哪个版本开始,操作系统/服务包/应用程序附带标准字体的 Unicode 版本?例如,自 1999 年以来,Office 附带了 Microsoft 的 Arial unicode,但是我没有安装 office,但我的 Arial 仍然至少具有一些 Unicode 范围。
另外,Mac OS 和 Linux 的情况如何?
有人可以向我指出一些关于这方面的综合资源——报告、列表、概述吗?
答:
一些随机观察:
- 在OS X上,Unicode支持是完美的,至少可以满足您的需求。
- 在 Windows 上,情况似乎取决于浏览器。我没有使用很多神秘的字符,但我使用的几个字符(主要是标点符号)似乎在Firefox中显示得很好。像往常一样,唯一的问题是在 Internet Explorer 中。
- 如果你对你的客户有一定的控制权,你可以分发一些好的免费字体吗?
- 甚至网络字体也可以工作。
- Unicode 字符的一个缺点是它们通常非常丑陋。太大、太小、位置错误等。
评论
这个问题可能是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/
但是,我不确定Unicode标准如何定义如何呈现独立的COMBINING DOUBLE字符,因为它应该组合其他字符。
评论
实际上并没有字体(*)的“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;操作系统将在查找时透明地进行转换。
评论