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);
我有一个 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);