在 Javascript 中显示 unicode 字符(表情符号)
Display unicode characters (emojies) in Javascript
我有一个数据库,其中包含诸如“\U0001f374 午餐。有很多肉......”之类的推文——也就是说,表情符号表示为 unicode(\U0001f374 是刀叉表情符号)。在我的 Web 应用程序中,我使用 Ajax 请求获取推文并希望显示它们。
没什么大不了的,到目前为止,我已经 运行 可以用 unicode 显示 "raw" 推文字符串。但是,我喜欢渲染表情符号。我如何在 Javascript 中执行此操作?
由于 \U0001f374
等符号在 JavaScript 中未定义,您需要使用自己的代码(或合适的库代码)从中构造字符。您可以从字符串中解析 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;");
document.getElementById('demo').innerHTML = sample;
<input id=in size=40
value="\U0001f374 Lunch. Had loads of meat...">
<div id=demo>To be replaced</div>
我有一个数据库,其中包含诸如“\U0001f374 午餐。有很多肉......”之类的推文——也就是说,表情符号表示为 unicode(\U0001f374 是刀叉表情符号)。在我的 Web 应用程序中,我使用 Ajax 请求获取推文并希望显示它们。
没什么大不了的,到目前为止,我已经 运行 可以用 unicode 显示 "raw" 推文字符串。但是,我喜欢渲染表情符号。我如何在 Javascript 中执行此操作?
由于 \U0001f374
等符号在 JavaScript 中未定义,您需要使用自己的代码(或合适的库代码)从中构造字符。您可以从字符串中解析 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;");
document.getElementById('demo').innerHTML = sample;
<input id=in size=40
value="\U0001f374 Lunch. Had loads of meat...">
<div id=demo>To be replaced</div>