每个浏览器都支持所有Unicode吗?

16

我希望通过使用Unicode而不是小图标来减少HTTP请求的数量。

我想使用的图标包括✔,►等。

有关所有所需字符的完整列表,请参见这里

  • 所有浏览器默认支持这些字符吗?
  • 如果默认不支持,我可以添加对这些字符的支持吗?
  • 哪些CSS和HTML需要以跨浏览器的方式将这些字符添加到网页中?

另外,我正在制作一个使用以下语言的Unicode网站:

यो भाषामा म वेबसाईट बनाउँदै छु 
  • 是否可能使该语言在每个浏览器和每个操作系统上都可见?
  • 如果可以提供此支持,需要哪些CSS和HTML代码?
  • 我需要包含Web字体吗?
  • 我可以使用哪些Web字体,并如何以跨浏览器的方式添加它们?

看起来 @font-faceunicode-range 属性可以在这种情况下有所帮助,但我需要其他人解释它的使用时机和方式(ELI5)。 - joeytwiddle
3个回答

12
这是一个关于字体的问题,而非浏览器支持问题。除非浏览器本身存在严重的错误,只要用户安装了包含所需字符的字体,它就应该能够正常显示。
现在,在所有常见操作系统内置字体中所有字形的交集是一个完全不同的问题,也更难回答。
对于小图标的情况,最可靠的解决方案是使用CSS @font-face 规则请求浏览器下载特定字体。然后,您就可以确定用户已安装适当的字体。甚至有一些专门为此目的设计的字体,其中包括额外的图标:"Font Awesome" 是一个著名的例子。
对于外文文本的情况:假设您的受众都能阅读该脚本,对吧?在这种情况下,他们几乎肯定已经具备了字体支持 - 他们中的许多人可能已经将其整个界面设置为相同的语言!

CSS @font-face在跨浏览器方面表现如何?它是CSS3还是旧版本?CSS3不是跨浏览器的。 - blue ghhgdtt
它被几乎所有的东西所支持(http://caniuse.com/font-face)。没有它的浏览器仍将使用本地字体。 - Eevee
注意,fortawesome网页已经更改,代码库位于https://github.com/FortAwesome,网页地址为https://fontawesome.com/,截至2022年。 - osirisgothra

3

常用字符可以被所有人看到。但亚洲字体往往会有问题。据我所知,不是每个操作系统上的每个浏览器都能查看那种字体。我的Windows 7 Ultimate电脑上的Chrome、Opera和IE可以查看这些字符。默认浏览器上的Android 4.1手机也可以查看。

我不能看到列表中的每一个字符,但我可以看到绝大多数。在“杂项数学符号-A”之后,我几乎什么都看不到。


这也取决于您使用的查看器,charmap.exe 可能不会尝试解析互联网上或其他地方的任何字符,它是来自非常古老的 Windows 时代的遗物,即使它被重写了,它仍然有这个问题,并且这不是 Microsoft 考虑更新的第一件事。他们应该放弃整个东西并重新编写它。如果他们还没有这样做,他们很可能会制作一个简化的移动/表面 WPF 样式程序来取代它。我没有尝试过 Windows 11,看到了太多可怕的故事。 - osirisgothra

3
没有任何浏览器支持Unicode的全部字符,也没有被要求这样做。规范并不要求所有字符或其特定子集会正确显示。由于没有单一字体可以覆盖Unicode的所有内容,甚至常见字体的并集也无法实现该功能,因此几乎不可能做到这一点。
因此,问题应该重新用字体支持来表述特定字符。此外,您应该使用font-family声明,以合理努力使用适当的字体。原因是浏览器仍然在字体回退方面存在困难:如果声明的字体或浏览器默认字体不包含特定字符,则它们并不总是自动找到合适的备用字体。
使用可下载字体(Web 字体)可能是答案的一部分,但如果您只想使用少量图标,则可能过度使用。对于用德瓦纳格里文写的文本,这可能是最佳方法;唯一安装的支持它的字体是Arial Unicode MS,而没有安装Microsoft Office的人可能没有它。因此,考虑通过@font-face将GNU Freefont中的FreeSans或FreeSerif作为可下载字体。
有关此主题的一般信息:在HTML中使用特殊字符的指南

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