Nir*_*iru 6 javascript unicode node.js
我有一个 JSON 对象,其字符串字段可能包含与以下内容匹配的转义 unicode 字符: '\\\\\\\\u'\n例如:
\n chars\\\\u2078\\\\u2078 -> chars\xe2\x9c\xa8\xe2\x9c\xa8\nRun Code Online (Sandbox Code Playgroud)\n我尝试使用 Stringify 进行转换,并在替换 Node.Js 12 中的额外字符后重新解析:
\n let s = JSON.stringify(input);\n console.log(JSON.stringify(input));\n let r = new RegExp('\\\\\\\\\\\\\\\\', 'g');\n let t = s.replace(r, '\\\\');\n console.log(t);\n let u = JSON.parse(t);\n console.log(u); // -> {field: 'chars\xe2\x81\xb8'}\nRun Code Online (Sandbox Code Playgroud)\n手动尝试替换所有 unicode 字符也不起作用:
\n let s = 'chars\\\\\\\\u2078\\\\\\\\u2078';\n console.log(s); //-> chars\\\\u2078\\\\u2078\n let r = new RegExp('\\\\\\\\(u[0-9]{4})', 'g');\n console.log(s,' ', s.replace(r, (a,b) => {return b})); //-> chars\\\\u2078\\\\u2078 chars\\u2028\\u2078\nRun Code Online (Sandbox Code Playgroud)\n有没有办法解码转义的 unicode 字符,以便显示实际的 unicode 值?
\n\\u2078不是 \xe2\x9c\xa8 的 unicode,而是 \xe2\x81\xb8 的 unicode。\\u2728是 \xe2\x9c\xa8 的 unicode。
不确定到底是什么问题。这似乎工作正常:
\nlet input = \'chars\\\\u2728\\\\u2728\';\nconsole.log(input);\ninput = JSON.stringify(input);\nconsole.log(input);\ninput = input.replace(/\\\\\\\\/g, \'\\\\\');\nconsole.log(input);\ninput = JSON.parse(input);\nconsole.log(input);Run Code Online (Sandbox Code Playgroud)\r\n| 归档时间: |
|
| 查看次数: |
2046 次 |
| 最近记录: |