我有一个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字符串?
答案 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
,因此我更新了示例中的代码匹配它。如果不是这种情况,将无法正常工作。