表情符号 unicode 不会呈现为表情符号

Emoji unicode does not render into emoji

我有以下上下文,我想将图案转换为表情符号,但我看到的结果是 &#1F600;。代码 &#1F600; 不会呈现为表情符号。

知道为什么吗?

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

我也尝试过 U+1F600 并且得到了相同的结果。

您缺少十六进制实体值的 'x',😀

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

'\uD83D\uDE00'

这些被称为“surrogate pairs”。

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

String.fromCodePoint(0x1F600)

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