我有以下背景,我想将模式转换为表情符号,但我看到的结果是F600;
。代码F600;
不会呈现为表情符号。
知道为什么吗?
$('#m').keyup(function (){ value = $('#m').val().replace(/(\:\))/g, 'F600;'); $('#m').val(value); });
我也尝试使用U+1F600
,结果相同。
答案 0 :(得分:5)
对于十六进制实体值😀
?
要在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,并且您可以指望您将使用的代码编辑器来处理适当扩展的字符集。