如何检查用户的计算机是否支持表情符号?

ELL*_*BLE 24 terminal command-line progressive-enhancement emoji

我想,这个问题可以推广到任何一个角色; 但我的具体用例是表情符号.

我正在编写一个命令行程序,我想检测运行它的计算机是否安装了可以显示表情符号的字体; 以及当前终端应用程序是否以该字体显示它们.

目前,我有一个黑客,只是在非OS X上过滤掉它们; 但我不想短暂更改拥有表情符号启用设置的Linux用户.我更愿意以'正确的方式'做到这一点.

谢谢!

Cod*_*4R7 3

你的脚本必须:

  1. 知道哪些系统字体可用,以及字体文件在哪里(例如 C:\Windows\Fonts)
  2. 检查这些文件的内容。我想检查它们可以通过技术方式来完成,解开文件格式。但您也可以通过计算边界框或模拟表情符号字符的字体使用来模拟视觉使用。

如果您热衷于PHP,您可以计算Emoji 已知的 TTF 字体的边界框,并查看该值是否是支持它的字体所期望的值。

您还可以通过使用GD在内存中的黑色图像中绘制白色字体来模拟字体的使用,并计算白色像素的(平均)数量以查看其是否符合预期阈值。

您还要求检查当前的终端应用程序是否会显示它们。为此,您需要能够检查配置,这并非易事,因为您需要能够区分所有终端应用程序。一个实用的解决方案是用当前字体显示一些表情符号,然后询问用户它是否可见。毕竟,如果终端应用程序需要支持 Emoji,你无论如何都需要依赖用户?