所有浏览器都支持Unicode字体支持的任何标准吗?

时间:2012-12-15 12:21:19

标签: unicode fonts cross-browser standards

是否有标准管理所有浏览器的Unicode字体支持?

最新版本的Unicode包含超过110,000个字符的字符集,涵盖100个脚本。我不希望浏览器支持所有这些浏览器,但应该对某些字符提供最低限度的支持,例如来自拉丁字母的字母,常见的标点符号以及数学,货币和其他类型的符号。

我目前在Android浏览器上显示U + 060B AFGANI SIGN(؋)和U + 202F NARROW NON-BREAK SPACE时遇到问题。我想知道是否有一个普遍认可的Unicode字符列表,以便开发人员可以自信地使用它们,而不必担心浏览器显示问题。

2 个答案:

答案 0 :(得分:3)

浏览器中没有关于Unicode支持的标准。此外,显示字符的能力主要取决于字体,尽管浏览器在扫描字体方面的能力不同。通常,您可以做的是指定一个合适的font-family字体列表,每个字体都支持您需要的所有字符。有关此问题的一般性,请参阅我的Guide to using special characters in HTML

在Android上,问题在于字体集非常有限。如果您需要超出其支持范围的任何字符,则需要通过@font-face使用可下载字体。

货币符号“؋”U + 060B AFGHANI SIGN存在于大约十几种字体中,但其中唯一的免费字体(如果我们不计算位图字体GNU Unifont)似乎是Scheherazade

对于U + 202F NARROW NO-BREAK SPACE,font support更宽。但总的来说,使用除此类字符之外的其他方法通常更好。许多字体包含的这个字符几乎与普通空间一样宽,并且它在Unicode标准中关于其宽度的描述是模糊的:“不间断空间的狭窄形式,通常是薄空间或中间的宽度空间”。 “精简空间”在Unicode标准中被描述为“五分之一(或有时是第六个)”,实际上它的宽度不同。而“中间空间”实际上是一个未定义的概念。

例如,如果文本是使用空格作为千​​位分隔符的语言,原则上你可以写一个像100 000这样的数字作为100 000,但最好写一下,比方说,

<span class="gr">100&nbsp;000</span>

使用CSS代码,例如.gr { word-spacing: -0.15em }

答案 1 :(得分:1)

AFAIK,所有浏览器都支持@font-face来加载webfonts,并且可以支持这些字体中的任何字符。因此,如果您确保提供对支持这些字符的webfont的访问权限,您应该能够在任何浏览器中显示任何字符。

为避免使用巨型字体仅支持一些特殊字符,您可以使用 Icomoon App 等工具创建自己的字体。

我使用Icomoon应用程序创建 Emoji emoticon font 以及基于每个项目创建自定义图标字体。

有关使用或创建图标字体(或其他网络字体)的详情,请参阅 Create webfont with Unicode Supplementary Multilingual Plane symbols