【问题标题】:Is there a blank Unicode character matching emoji width?是否有与表情符号宽度匹配的空白 Unicode 字符?
【发布时间】:2021-06-04 09:03:50
【问题描述】:

Unicode 是否定义了与任何/某些表情符号(例如“Emoji Space”)具有相同宽度的空白字符(例如“Em Space”或“En Space”)?如果有,是哪一个?

我希望能够格式化包含表情符号的固定宽度字体纯文本表(CI 报告电子邮件)。它们似乎无法与常规空间或我尝试过的任何其他空间对齐(比较“x86_64”、“arm”和“mips”行):

                                                                                               
    Status                                                                                     
        ❌ 13 / 733 builds FAILED                                                              
    Architectures                                                                              
        x86_64       ✅ 82  ❓ 4                                                               
        aarch64      ✅ 6                                                                      
        ppc64le      ✅ 5                                                                      
        s390x        ✅ 5                                                                      
        mips    ❌ 9 ✅ 77                                                                     
        arm64        ✅ 73                                                                     
        arm     ❌ 4 ✅ 282 ❓ 4                                                               
        i386         ✅ 30                                                                     
        sparc        ✅ 9                                                                      
        riscv        ✅ 33                                                                     
        arc          ✅ 10                                                                     
        s390         ✅ 21                                                                     
        powerpc      ✅ 52                                                                     
        sh           ✅ 18                                                                     
        parisc       ✅ 9                                                                      

将 VS16 应用于空格/字母,或将 VS15 应用于表情符号,在很大程度上不起作用(在 Firefox、Chrome 和 Thunderbird 中):

|   |
|❌︎✅︎❓︎|
| ️ ️ ️|
|❌✅❓|

【问题讨论】:

  • 这是一个方便的“Zs”类别代码点列表:compart.com/en/unicode/category/Zs 但我不确定表情符号的宽度是如何或是否相对于其中任何一个定义的。

标签: unicode emoji


【解决方案1】:

此刻的答案似乎是“不”。一种解决方法可能是使用另一个表情符号,其含义最接近“无”,具体取决于您的上下文。例如。这就是我在 CI 电子邮件中的内容:

BUILDS

    Status
                 ❌ 4  ✅ 712
    Architectures
         x86_64  ➖    ✅  82
        aarch64  ➖    ✅   6
        ppc64le  ➖    ✅   5
          s390x  ➖    ✅   5
           mips  ➖    ✅  77
          arm64  ➖    ✅  73
            arm  ❌ 4  ✅ 282
           i386  ➖    ✅  30
          sparc  ➖    ✅   9
          riscv  ➖    ✅  33
            arc  ➖    ✅  10
           s390  ➖    ✅  21
        powerpc  ➖    ✅  52
             sh  ➖    ✅  18
         parisc  ➖    ✅   9

【讨论】:

  • tabtab + U+FE0F 在您的情况下是否有效?
  • @phuclv,很遗憾没有。 Thunderbird 仍然显示未对齐的列。
【解决方案2】:

这基本上是一个字体问题。您需要一个带有 U+2705 WHITE HEAVY CHECK MARK 和其他字符字形的等宽字体,并确保使用变体选择器禁用表情符号。 Web 浏览器通常用备用字体替换丢失的字符,但随后您会失去对字符间距的控制。您最好的选择是使用更有可能被支持的字符。不幸的是,即使是 U+2713 CHECK MARK 似乎也支持only in a few monospace fonts

【讨论】:

  • 嗯,对不起,我不确定这对我有什么帮助。我的浏览器/终端/电子邮件客户端都支持这两个字符,而变体选择器没有帮助,正如我在问题中提到的那样。另一个答案表明这些已在此处删除。你能澄清一下吗?
  • 你的意思是 VS15 对我不起作用,因为特定字体没有对应于“文本化”表情符号的字符,而且很难找到具有这些字符的字体吗?如果是这样,那就解释了问题,谢谢。不幸的是,我无法指定收件人使用哪些字体,因为我发送的是纯文本电子邮件。有些收件人的字体中甚至可能根本没有表情符号。
猜你喜欢
  • 2019-01-27
  • 2023-04-04
  • 2021-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-05
相关资源
最近更新 更多