在Javascript中显示unicode字符(emojis)

时间:2015-03-08 09:28:00

标签: javascript unicode utf-8 utf-16

我有一个带有推文的数据库,例如“\ U0001f374午餐。有很多肉......” - 也就是说,表情为unicode的表情符号(\ U0001f374是刀和叉表情符号)。在我的Web应用程序中,我使用Ajax请求获取推文并希望显示它们。

没什么大不了的,我现在已经开始运行了,我可以用unicode显示“原始”的推文字符串。但是,我喜欢渲染表情符号。我怎么能用Javascript做到这一点?

1 个答案:

答案 0 :(得分:3)

由于JavaScript中未定义\U0001f374之类的符号,因此您需要使用自己的代码(或合适的库代码)从中构造字符。您可以从字符串中解析Unicode编号并将其转换为一对代理代码点。

但是如果您在HTML(或XML)上下文中使用JavaScript,则可以让HTML(或XML)解析器完成工作。只需将字符串(假设有8个十六进制数字)更改为HTML或XML字符引用,并确保将结果解析为标记:



var sample = document.getElementById('in').value;
sample = sample.replace(/\\U([0-9a-f]{8})/gi, "&#x$1;");
document.getElementById('demo').innerHTML = sample;

<input id=in size=40
       value="\U0001f374 Lunch. Had loads of meat...">
<div id=demo>To be replaced</div>
&#13;
&#13;
&#13;