Unicode符号和操作系统/浏览器字体支持

10

有很多精美的Unicode符号,这太神奇了。

但是如果我不知道用户的字体是否支持它们,它们就都没用了。

我该如何找出呢?

我能否追踪用户的字体是否支持Unicode符号?

有什么方法可以进行某种备用方案吗?(如果此Unicode符号不受支持,则显示另一个Unicode符号)

是否有任何操作系统/浏览器支持参考资料?(我已经广泛搜索了这样的参考资料,但迄今为止没有任何运气。)

您决定使用Unicode符号的策略是什么?

我很想使用更多可爱的Unicode符号。

===编辑===

例如:我想在我的项目的readme.md上使用Unicode“ U+2605 ★ BLACK STAR”,我怎么知道这个Unicode符号是否会正确地显示?


1
请提供您想要使用它的任何情况。提出您真正想要回答的实际问题。我们无法确定您真正想要什么。 - androbin
@androbin 我想在我的项目描述中使用Unicode "U+2605 ★ BLACK STAR",该项目位于https://github.com/reframejs/reframe。我如何知道有多少用户支持这个Unicode符号? - brillout
使用JavaScript检测单个Unicode字符的支持 - phuclv
1
@phuclv,感谢您提供的链接。答案“将字符和缺失字形框呈现在屏幕外并比较它们的宽度”非常有趣。如果有人能在所有操作系统/浏览器上运行此测试并提供兼容性表格,那就太棒了。 - brillout
相关:如何检查字体是否具有符号:_正确行为的浏览器会从次要字体中提取字形,如果主字体缺少字符的字形_(8年前,所以现在_任何_字形都应该从Unicode BMP中呈现)... - JosefZ
2个回答

6
如果有人能在所有操作系统/浏览器上运行此测试并提供兼容性表,那将非常棒。现代浏览器可以显示几乎任何字符,只要用户安装了包含它的字体即可。所以你的问题归结为:每个主要操作系统捆绑了哪些字体,这些字体支持哪些字符?好吧,我创建了一个工具,可以呈现确切的信息。这可能有点过头了,因为很容易使用FontAwesome、IonIcons或类似的字体或符号集,你可以知道其中包含了你想要的字符。如果你只谈论一些符号,甚至可以下载和包括单个SVG。但是,如果你想节省外部依赖项和网络请求,同时又从纯文本的简单CSS样式中受益,那么这就是你的解决方案!如果你想使用不被广泛支持的字符,我会包括Google Noto字体的名称,你可以链接或嵌入@font-face。还有一个浏览器可以查看整个Unicode块。
无论如何,请查看Unicompat.com,看看它是否符合您的要求。它仍处于测试阶段,如果有任何问题,请谅解。

1
哇,我喜欢它。谢谢你提供这个精彩的工具。你应该把它放在GitHub上,以确保它永远存在! - brillout
1
现在已经在Github上发布,供任何有兴趣的人使用。由于整个数据库超过250MB,因此并未全部发布,但是我用来创建它的脚本已经包含在内。https://github.com/gelbartj/unicompat-public - jdaz
1
http://unicompat.com/ 似乎已经无法访问,我在 GitHub 上创建了一个问题:https://github.com/gelbartj/unicompat-public/issues/42 - brillout

0

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

要确定用户的字体是否支持特定的Unicode符号,您可以检查它是否是字体字符集的一部分。

为了备用,您可以使用另一个Unicode符号,这个符号可能会被大多数字体支持,或者指定一个具有更广泛的Unicode符号支持的备用字体。

对于所有操作系统和浏览器的Unicode支持,没有一种通用的参考资料,因为它取决于所使用的特定字体。但是,您可以检查Unicode符号是否属于Unicode标准,该标准提供了定义字符及其编码的全面列表。

个人喜欢使用此网站进行检查 http://www.alanwood.net/unicode/cjk_compatibility.html


假设我想知道大多数浏览器/操作系统是否能够呈现Unicode表情符号https://emojipedia.org/emoji/%F0%9F%8E%97/ - 我如何使用您的资源来检查? - brillout

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