【问题标题】:String.fromCodePoint() does not return flag emojiString.fromCodePoint() 不返回标志表情符号
【发布时间】:2019-01-10 15:22:59
【问题描述】:

我正在尝试从 Unicode 中获取表情符号,所有 Unicode 都返回表情符号,但只有国旗表情符号不返回表情符号,它返回表情符号名称的第一个字母。

这是我的代码:

String.fromCodePoint(parseInt('1f1fa-1f1f8', 16)) // ????此代码正在返回 ????代替 ????????

但如果我使用其他表情符号代码而不是标记表情符号代码,它正在工作。 String.fromCodePoint(parseInt('1f61b', 16)) //????此代码返回正确的表情符号

谁能帮帮我?

【问题讨论】:

  • 1f1fa-1f1f8 看起来像两个字符 - parseInt 当然不知道。 String.fromCodePoint(0x1f1fa, 0x1f1f8) 应该可以,不过

标签: javascript html unicode emoji


【解决方案1】:

parseInt('1f1fa-1f1f8', 16) 正在返回 127482,它与 parseInt('1f1fa', 16) 相同

所以要解决这个问题,你可以用连字符 (-) 分割它们

var c = '1f1fa-1f1f8'.split('-')
                     .map(i => parseInt(i,16))
String.fromCodePoint(...c) // us

【讨论】:

    【解决方案2】:

    试试String.fromCodePoint(parseInt('1f1fa', 16), parseInt('1f1f8', 16))

    parseInt 只返回第一个字节,而不是两者。据我所知,parseInt 一次只能解析一个值。

    【讨论】:

      猜你喜欢
      • 2015-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多