You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中向Unicode字符转义序列插入变量

动态生成Unicode图标字体的解决方法

问题背景

在带嵌套WebView的应用中,原本通过静态Unicode转义语法"\u{F053D}"加载图标字体,现在需要改用动态变量(存储类似"F053D"的十六进制字符串)生成图标,但直接替换转义语法中的静态值会报错“\u后需跟十六进制数字”。

无效写法示例

尝试过的几种错误写法:

  • '\u{hexCode}'
  • '\u{${hexCode}}'
  • '\u{' + hexCode + '}'

正确解决方案

JavaScript的\u{...}是编译时静态转义语法,无法直接插入变量。需通过String.fromCodePoint()方法动态生成Unicode字符:

实现代码

// 假设hexCode是存储十六进制字符串的变量
const hexCode = "F053D";
// 将十六进制字符串转为十进制码点,再生成对应字符
const dynamicIcon = String.fromCodePoint(parseInt(hexCode, 16));

之后直接将dynamicIcon变量用于WebView的图标渲染即可。

补充说明

  • 若图标码点范围在0x0000至0xFFFF之间,也可使用String.fromCharCode(),但fromCodePoint支持所有Unicode码点(含大于0xFFFF的特殊图标、emoji),兼容性更广。
  • 确保hexCode为纯十六进制字符串,不要包含0x前缀或\u{}包裹。

内容的提问来源于stack exchange,提问作者Bruic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 06:40:59