在JS浏览器中渲染表情符号

时间:2020-01-02 11:24:08

标签: javascript emoji

我有一个JSON对象,其字符串定义如下:var obj = {text:"Iconic. \n\\ud83d\\udd25"},其中\ud83d\udd25应该是fire表情符号。

编辑:从外部源以这种转义格式传递字符串。

然后我将该值传递给div

var caption = document.getElementById('caption');
caption.innerHTML = obj.text;

我的脑袋里也有<meta charset="UTF-8">

如何将其呈现为表情符号而不是unicode字符串?

1 个答案:

答案 0 :(得分:1)

从源头修复此问题,以使数据不会两次转义,这将是解决此问题的最佳方法。

如果无法执行此操作,则可以将数据括在双引号中,以将其转换为包含字符串的JSON表示形式的字符串,然后解析该JSON。

const obj = {
  text: "Iconic. \\n\\ud83d\\udd25"
};
const text = JSON.parse('"' + obj.text + '"');
var caption = document.getElementById('caption');
caption.innerHTML = text;
<table>
  <caption id="caption"></caption>
  <tr>
    <td>data</td>
    <td>data</td>
  </tr>
  <tr>
    <td>data</td>
    <td>data</td>
  </tr>
</table>

注意:例如,您在评论中说,字符串中的新行以\\n的形式出现,因此呈现为\n ,因此我更新了示例中的代码匹配它。如果不是这种情况,将无法正常工作。