command-line - 如何检查用户的计算机是否支持 Emoji?

标签 command-line terminal emoji progressive-enhancement

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

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

目前,我有一个 hack,可以在非 OS X 上简单地将它们过滤掉;但我不想缩短拥有启用表情符号设置的 Linux 用户。我更愿意以“正确的方式”做到这一点。

谢谢! 💖

最佳答案

您的脚本必须:

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

  • 如果您喜欢 PHP , 你可以 calculate the bounding box以 Emoji 已知的 TTF 字体,并查看该值是否是支持它的字体的预期值。

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

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

    关于command-line - 如何检查用户的计算机是否支持 Emoji?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23548946/

    相关文章:

    xcode - xcrun : error: unable to lookup item 'Path' in SDK 'macosx'

    java - Maven(命令行): No compiler is provided in this environment

    command-line - 如果存在命令行选项,如何绕过 MFC 应用程序中的 GUI?

    ubuntu - subl 命令绑定(bind)一个终端

    javascript - 将表情符号作为短信中的文本发送

    javascript - 如何检测 Snowflake VARCHAR 中的表情符号?

    MySQL 无法对表情符号正确进行 GROUP BY

    command-line - Oh My Zsh - 禁用 'Would you like to check for updates' 提示

    linux - 用于调用 bash 命令的文本编辑器模式

    python - 当我通过终端使用 VIM 时,我不断收到重复的文件,并在末尾附加了 ~。这些是什么?