解决 Windows Chrome/Edge 浏览器无法显示国旗 Emoji

在 Windows 平台正确显示国旗

0、前言

由于众所周知的政治因素:

最初 Unicode 只有那么几个国旗,后来要增加国旗时 Unicode 委员会就发现这是个政治敏感问题,因为某些地区算不算独立国家是有争议的,无论 Unicode 如何站边都会得罪人。
于是 Unicode 委员会选择了一个很聪明的方法来甩锅:Unicode 引入一个特殊字符,该字符表明接下来两个英文字母是国家代号(例如 CN),系统或软件自行决定是否渲染为对应国旗。这也就是说,当软件看到这一特殊字符后面跟着 TW 时,软件要自行决定如何站边,Unicode 委员会不管。
——Zhihu ( https://www.zhihu.com/question/263563654 )

在 Windows 和国行版 iPhone 里是无法正常显示各种国旗 Emoji 的。直接原因是 Windows 完全不提供包含 Emoji 的字体文件,因此只能渲染成两个字母:

浏览器渲染 Emoji

因此需要想办法让 Windows 可以显示这些 神奇字母 国旗 Emoji。

1、替换系统字体

使用 GitHub 项目:

Twitter Color Emoji SVGinOT Font
https://github.com/13rac1/twemoji-color-font

原理是把 Windows 的原生字体中 Emoji 表情的部分替换为 Twitter 的 Emoji,推特的 Emoji 能正常显示国旗,因此替换后在 Windows 上自然能正确显示国旗了。

下载最新的 Release,运行其中的 .bat 脚本,会自动下载两个字体文件,然后安装字体后就可以显示了。

然而由于系统和程序限制1,大部分使用 Chromium 和 Electron 的程序都不支持。因此还需要给浏览器单独安装浏览器插件。

2、安装浏览器插件

网上常见的推荐插件是:

Country Flag Fixer
https://microsoftedge.microsoft.com/addons/detail/country-flag-fixer/nfkjcekokjacfnambbbdidjpgogkppmm?hl=zh-CN

经测试,目前这个插件仅支持正常显示写在网页中的静态 Emoji,如果是通过 Ajax 等方法动态获取的内容(例如列表、评论),则不会被正常显示。

再次搜索发现了另一个插件:

Twemoji for Chrome
https://chromewebstore.google.com/detail/twemoji-for-chrome/fopgafjdjlongoeblobbafbnapafcicg

这次,插件完美解决了 Emoji 显示问题。评论有人反馈会导致 YouTube 视频播放一段时间后重新开始播放,应该是加载视频简介、评论区中的 Emoji 触发页面重载了。经测试最新版已没有此问题:

48 Hours in Taipei and Northern Taiwan: Ultimate Guide
https://www.youtube.com/watch?v=RV2VLz33314

测试方法:播放视频,然后点开简介、评论区,观察是否重新播放。

最终 Emoji 显示效果2

Emoji 大全

解决 Windows Chrome/Edge 浏览器无法显示国旗 Emoji

https://blog.tsinbei.com/archives/1550/

文章作者
Hsukqi Lee
发布于

2024-06-18

修改于

2024-06-18

许可协议

CC BY-NC-ND 4.0

# Web  政治  软件  Windows  Edge  Chrome  Emoji  Unicode

评论

昵称
邮箱
网址
1 条

蜘蛛抱蛋

昨天在弄博客评论,本来想把国家代号转换成国旗emoji,然而只有少数国家能正常在edge里显示就放弃了,没想到在这里找到了答案 666

  回复