我有一个带有推文的数据库,例如“\ U0001f374午餐。有很多肉......” - 也就是说,表情为unicode的表情符号(\ U0001f374是刀和叉表情符号)。在我的Web应用程序中,我使用Ajax请求获取推文并希望显示它们。
没什么大不了的,我现在已经开始运行了,我可以用unicode显示“原始”的推文字符串。但是,我喜欢渲染表情符号。我怎么能用Javascript做到这一点?
答案 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;