Javascript 解码 JSON 中的 unicode 反斜杠

Javascript decode unicode backslashes in JSON

我有一个 JSON 对象,其字符串字段可能包含匹配的转义 unicode 字符:'\\\\u' 例如:

     chars\u2078\u2078 -> chars✨✨

我尝试使用 Stringify 进行转换,并在替换 Node.Js 12 中的额外字符后重新解析:

    let s = JSON.stringify(input);
    console.log(JSON.stringify(input));
    let r = new RegExp('\\\\', 'g');
    let t = s.replace(r, '\');
    console.log(t);
    let u = JSON.parse(t);
    console.log(u); // -> {field: 'chars⁸'}

手动尝试替换所有 unicode 字符也不起作用:

    let s = 'chars\\u2078\\u2078';
    console.log(s); //-> chars\u2078\u2078
    let r = new RegExp('\\(u[0-9]{4})', 'g');
    console.log(s,' ', s.replace(r, (a,b) => {return b})); //-> chars\u2078\u2078 chars\u2028\u2078

有没有办法解码转义的 unicode 字符,以便显示实际的 unicode 值?

\u2078 不是 ✨ 的 unicode,而是 ⁸ 的 unicode。 \u2728 是 ✨ 的 unicode。

不确定到底是什么问题。这似乎工作正常:

let input = 'chars\u2728\u2728';
console.log(input);
input = JSON.stringify(input);
console.log(input);
input = input.replace(/\\/g, '\');
console.log(input);
input = JSON.parse(input);
console.log(input);