【问题标题】:Emoji unicode does not render into emoji表情符号 unicode 不会呈现为表情符号
【发布时间】:2018-03-31 14:18:12
【问题描述】:

我有以下上下文,我想将一个模式变成一个表情符号,但是我看到的结果是&#1F600;。代码&#1F600; 不会呈现为表情符号。

知道为什么吗?

$('#m').keyup(function (){ value = $('#m').val().replace(/(\:\))/g, '&#1F600;'); $('#m').val(value); });

我也尝试过U+1F600,结果相同。

【问题讨论】:

  • .val-s ?

标签: html unicode emoji


【解决方案1】:

您缺少十六进制实体值的“x”😀

?

为了在 JavaScript 字符串中传递这个表情符号,作为字符本身而不是作为 HTML 实体,您需要两个字符 - JavaScript 字符串只能直接执行 16 位代码点,因此 \uFFFF 之外的 Unicode 代码点必须是分成两个 16 位值,如下所示:

'\uD83D\uDE00'

这些被称为“surrogate pairs”。

或者,您也可以通过这种方式为表情符号创建表情:

String.fromCodePoint(0x1F600)

您甚至可以直接在代码中使用表情符号字符,只要您将代码保存为兼容的编码(例如 UTF-8),并且您可以依靠您将使用的代码编辑器来处理适当扩展的字符集。

【讨论】:

  • 可能与浏览器有关?使用 Firefox 对我来说效果很好。
  • 我刚刚在 Chrome 中打开了这个页面,表情符号(笑脸)在 Chrome 中也显示得很好。
  • 我在上面的答案中添加了更多可能会有所帮助的内容。
  • 根据你是如何分解的?因为我需要更多表情符号来转换? :)
  • 我在 Chrome JavaScript 控制台中为笑脸设置了一个字符串,如下所示:let a = '?';,然后我得到了 a.charCodeAt(0).toString(16)a.charCodeAt(1).toString(16) 的值。
猜你喜欢
  • 1970-01-01
  • 2021-10-04
  • 2018-09-10
  • 2020-09-13
  • 2014-03-27
  • 2023-03-22
  • 2021-11-07
  • 2015-10-18
相关资源
最近更新 更多