从 JS 在浏览器中渲染表情符号
Render emoji in browser from JS
我有一个 JSON 对象,其字符串定义如下:var obj = {text:"Iconic. \n\ud83d\udd25"}
,其中 \ud83d\udd25
应该是火表情符号。
编辑:字符串以这种转义格式从外部来源传递。
然后我将这个值传递给 div as
var caption = document.getElementById('caption');
caption.innerHTML = obj.text;
我脑子里也有<meta charset="UTF-8">
设置。
如何让它呈现为表情符号而不是 unicode 字符串?
在源头修复此问题,使数据不被双重转义将是解决此问题的最佳方法。
如果您不能这样做,那么您可以将数据用双引号括起来,将其转换为包含字符串的 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
所以我更新了您示例中的代码以匹配该代码。如果不是这种情况,这将不起作用。
我有一个 JSON 对象,其字符串定义如下:var obj = {text:"Iconic. \n\ud83d\udd25"}
,其中 \ud83d\udd25
应该是火表情符号。
编辑:字符串以这种转义格式从外部来源传递。
然后我将这个值传递给 div as
var caption = document.getElementById('caption');
caption.innerHTML = obj.text;
我脑子里也有<meta charset="UTF-8">
设置。
如何让它呈现为表情符号而不是 unicode 字符串?
在源头修复此问题,使数据不被双重转义将是解决此问题的最佳方法。
如果您不能这样做,那么您可以将数据用双引号括起来,将其转换为包含字符串的 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
所以我更新了您示例中的代码以匹配该代码。如果不是这种情况,这将不起作用。