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

如何在JavaScript中将表情符号转换为Unicode转义序列

将Unicode字符转换为Unicode转义形式

要将Unicode字符(如冻脸表情🥶)转换成带双引号的Unicode转义字符串(如'"\\uD83E\\uDD76"'),可以通过手动遍历字符的UTF-16代码单元并生成转义序列来实现,以下是具体实现方案:

JavaScript实现

function unicodeEscape(str) {
  let escaped = '';
  for (let i = 0; i < str.length; i++) {
    const charCode = str.charCodeAt(i);
    // 将字符码点转为四位十六进制的\u转义格式
    escaped += '\\u' + charCode.toString(16).padStart(4, '0');
  }
  // 用双引号包裹转义后的内容
  return `"${escaped}"`;
}

// 测试示例
const emoji = '🥶';
const escapedStr = unicodeEscape(emoji);
console.log(escapedStr); // 输出:"\\uD83E\\uDD76"(实际字符串为'"\\uD83E\\uDD76"')
console.log(JSON.parse(escapedStr) === emoji); // 输出:true

Python实现

def unicode_escape(s):
    # 利用unicode-escape编码生成转义序列
    escaped = s.encode('unicode-escape').decode('utf-8')
    # 包裹双引号返回
    return f'"{escaped}"'

# 测试示例
emoji = '🥶'
escaped_str = unicode_escape(emoji)
print(escaped_str)  # 输出:"\\uD83E\\uDD76"
import json
print(json.loads(escaped_str) == emoji)  # 输出:True

说明

  • JSON.stringify()无法直接得到目标结果,因为它仅会对不可打印的Unicode字符进行转义,对于表情这类可打印字符会直接输出原字符。
  • 上述方法会遍历字符串的每个UTF-16代码单元(对于像🥶这样的emoji,会拆分为两个代理字符\uD83E和\uDD76),将每个单元转为\uXXXX格式的转义序列,最终包裹双引号,生成的字符串可通过JSON.parse()还原为原字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 10:45:34