表情符号unicode不会渲染成表情符号

时间:2018-03-31 14:18:13

标签: html unicode emoji

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

知道为什么吗?

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

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

1 个答案:

答案 0 :(得分:5)

对于十六进制实体值😀

,您缺少'x'

?

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

'\uD83D\uDE00'

这些被称为“代理对”:https://msdn.microsoft.com/en-us/library/windows/desktop/dd374069(v=vs.85).aspx

更新

要再添加一个选项,您也可以通过这种方式为表情符号字符创建表达式:

String.fromCodePoint(0x1F600)

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