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

所有浏览器都需要Unicode字体支持的标准吗?,unicode,fonts,cross-browser,standards,Unicode,Fonts,Cross Browser,Standards,是否有一个标准管理所有浏览器预期的Unicode字体支持 最新版本的Unicode包含超过110000个字符,涵盖100个脚本。我不希望浏览器支持所有字符,但应该至少支持一些字符,如拉丁字母、常用标点符号以及数学、货币和其他类型的符号 我目前在Android浏览器上显示U+060B AFGANI标志(؋)和U+202F狭窄的不间断空间时遇到问题。我想知道是否有一个公认的Unicode字符列表,以便开发人员可以放心地使用它们,而不必担心浏览器显示问题。浏览器中没有Unicode支持标准。此外,显示

是否有一个标准管理所有浏览器预期的Unicode字体支持

最新版本的Unicode包含超过110000个字符,涵盖100个脚本。我不希望浏览器支持所有字符,但应该至少支持一些字符,如拉丁字母、常用标点符号以及数学、货币和其他类型的符号


我目前在Android浏览器上显示U+060B AFGANI标志(؋)和U+202F狭窄的不间断空间时遇到问题。我想知道是否有一个公认的Unicode字符列表,以便开发人员可以放心地使用它们,而不必担心浏览器显示问题。

浏览器中没有Unicode支持标准。此外,显示字符的能力主要取决于字体,尽管浏览器在扫描字体方面的能力有所不同。通常,您可以指定一个合适的
字体系列
字体列表,每个字体都支持您需要的所有字符。关于这方面的概括性,请参阅我的

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

货币符号“؋”U+060B阿富汗符号有十几种字体,但其中唯一的免费字体(如果我们不计算位图字体GNU Unifont)似乎是

对于U+202F,窄的不间断空间更宽。但一般来说,使用其他方法比使用这些字符更好。许多字体包含此字符的宽度几乎与普通空格的宽度相同,Unicode标准中对其宽度的描述很模糊:“一种窄形式的不间断空格,通常为窄空格或中间空格的宽度”。在Unicode标准中,“瘦空间”被描述为“em的五分之一(有时是六分之一)”,实际上它的宽度是不同的。“中间空间”实际上是一个未定义的概念

例如,如果文本使用的语言使用空格作为数千分隔符,原则上可以将100000这样的数字写成
100 ;000
,但最好是写

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

使用CSS代码,如
.gr{字间距:-0.15em}

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

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

我使用Icomoon应用程序创建,并根据每个项目创建自定义图标字体


有关使用或创建图标字体(或其他网络字体)的详细信息,请参阅

,这似乎更像是字体问题,而不是浏览器问题。@melpomene,我理解,通过下载和安装必要的字体,可以解决此类浏览器显示问题。但有没有办法知道默认情况下是否支持特定的Unicode字符?没有任何操作系统供应商会承诺这样做。您必须对其进行测试。Unicode不是管理需要多少Unicode支持的标准吗?与处理文本的任何其他应用程序一样,浏览器需要处理Unicode,句号。类似地,如果浏览器将货币符号代码点视为货币符号,而不是字母或空格,则可以说浏览器支持该代码点。仅仅因为某个特定字体具有该代码点的图形表示形式,对于浏览器是否支持该代码点(也就是说,理解该Unicode代码点在该Unicode标准或该Unicode标准版本下的行为)来说,这显然无关紧要。属性可以而且有时确实会在不同版本之间更改,所以这是一个合理的问题。很棒的知识。我会认真考虑你的建议,使用CSS的狭小不间断空间。如果有人能想出一种涵盖所有一般和杂项内容的字体,并把它放在Google Web字体上共享,那不是很好吗?我错误地编写了一段没有代码标记的HTML代码,因此部分想法被忽略了;现在更正了。也许我错了,但我觉得整个问题都被误导了。对于特定代码点的字体支持与浏览器是否理解特定代码点是字母、空格或诸如此类的内容截然不同。因此,浏览器是否“支持”狭窄的非分隔空间,也就是说它不能触发换行符,这与字体是否包含换行符是完全不同的问题。