Javascript:以 unicode-escape 格式从 url 读取

Javascript: read from url in unicode-escape format

我正在使用 node-fetch 从 URL 读取数据。 return 结果是完美的,只是它与我的首选结果不同。 对于某些特殊字符,如 í 或此 ř,我希望它的格式如下:u00edu0159。 是否可以在不查找字符并手动替换的情况下实现类似的功能?

这是我的代码:

const fetch = require("node-fetch");
var result = {}
fetch(url)
.then(res => res.json())
.then(json => result = json);

我的 json 结果:

{"title":"Adopce zvířat"}

代替上面的结果,我想要:

{"title":"Adopce zv\u00ed\u0159at"}

这一定很奇怪,但出于某种原因我想要那样。

GitHub Gist User josephrocca found here on GitHub Gist 中的这个函数用 unicode 转义字符串替换所有 non-ASCII 个字符。

function escapeUnicode(str) {
  return [...str].map(c => /^[\x00-\x7F]$/.test(c) ? c : c.split("").map(a => "\u" + a.charCodeAt().toString(16).padStart(4, "0")).join("")).join("");
}

This function matches all non-ASCII characters after splitting the string in a "unicode-safe" way (using `[...str]`). It then splits each unicode character up into its code-points, and gets the escape code for each, and then joins all all the ASCII characters and Unicode escapes into one string.

[...]

Based on discussion in this thread: https://gist.github.com/mathiasbynens/1243213

您可以使用 jsesc 包:

const jsesc = require('jsesc');

jsesc('Ich ♥ Bücher'); // → 'Ich \u2665 B\xFCcher'

jsesc('foo  bar'); // → 'foo \uD834\uDF06 bar' 

From the Documentation on Github